// Path: kheera-testrunner/src/main/java/gherkin/Parser.java
// public enum RuleType {
//     None,
//     _EOF, // #EOF
//     _Empty, // #Empty
//     _Comment, // #Comment
//     _TagLine, // #TagLine
//     _FeatureLine, // #FeatureLine
//     _BackgroundLine, // #BackgroundLine
//     _ScenarioLine, // #ScenarioLine
//     _ScenarioOutlineLine, // #ScenarioOutlineLine
//     _ExamplesLine, // #ExamplesLine
//     _StepLine, // #StepLine
//     _DocStringSeparator, // #DocStringSeparator
//     _TableRow, // #TableRow
//     _Language, // #Language
//     _Other, // #Other
//     GherkinDocument, // GherkinDocument! := Feature?
//     Feature, // Feature! := Feature_Header Background? Scenario_Definition*
//     Feature_Header, // Feature_Header! := #Language? Tags? #FeatureLine Feature_Description
//     Background, // Background! := #BackgroundLine Background_Description Scenario_Step*
//     Scenario_Definition, // Scenario_Definition! := Tags? (Scenario | ScenarioOutline)
//     Scenario, // Scenario! := #ScenarioLine Scenario_Description Scenario_Step*
//     ScenarioOutline, // ScenarioOutline! := #ScenarioOutlineLine ScenarioOutline_Description ScenarioOutline_Step* Examples_Definition*
//     Examples_Definition, // Examples_Definition! [#Empty|#Comment|#TagLine-&gt;#ExamplesLine] := Tags? Examples
//     Examples, // Examples! := #ExamplesLine Examples_Description Examples_Table?
//     Examples_Table, // Examples_Table! := #TableRow #TableRow*
//     Scenario_Step, // Scenario_Step := Step
//     ScenarioOutline_Step, // ScenarioOutline_Step := Step
//     Step, // Step! := #StepLine Step_Arg?
//     Step_Arg, // Step_Arg := (DataTable | DocString)
//     DataTable, // DataTable! := #TableRow+
//     DocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator
//     Tags, // Tags! := #TagLine+
//     Feature_Description, // Feature_Description := Description_Helper
//     Background_Description, // Background_Description := Description_Helper
//     Scenario_Description, // Scenario_Description := Description_Helper
//     ScenarioOutline_Description, // ScenarioOutline_Description := Description_Helper
//     Examples_Description, // Examples_Description := Description_Helper
//     Description_Helper, // Description_Helper := #Empty* Description? #Comment*
//     Description, // Description! := #Other+
//     ;
// 
//     public static RuleType cast(TokenType tokenType) {
//         return RuleType.values()[tokenType.ordinal()];
//     }
// }
// 
// Path: kheera-testrunner/src/main/java/gherkin/Parser.java
// public enum TokenType {
//     None,
//     EOF,
//     Empty,
//     Comment,
//     TagLine,
//     FeatureLine,
//     BackgroundLine,
//     ScenarioLine,
//     ScenarioOutlineLine,
//     ExamplesLine,
//     StepLine,
//     DocStringSeparator,
//     TableRow,
//     Language,
//     Other,
//     ;
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static gherkin.Parser.RuleType;
import static gherkin.Parser.TokenType;
package gherkin;



public class AstNode {
    private final Map<RuleType, List<Object>> subItems = new HashMap<RuleType, List<Object>>();
    public final RuleType ruleType;

// Path: kheera-testrunner/src/main/java/gherkin/Parser.java
// public enum RuleType {
//     None,
//     _EOF, // #EOF
//     _Empty, // #Empty
//     _Comment, // #Comment
//     _TagLine, // #TagLine
//     _FeatureLine, // #FeatureLine
//     _BackgroundLine, // #BackgroundLine
//     _ScenarioLine, // #ScenarioLine
//     _ScenarioOutlineLine, // #ScenarioOutlineLine
//     _ExamplesLine, // #ExamplesLine
//     _StepLine, // #StepLine
//     _DocStringSeparator, // #DocStringSeparator
//     _TableRow, // #TableRow
//     _Language, // #Language
//     _Other, // #Other
//     GherkinDocument, // GherkinDocument! := Feature?
//     Feature, // Feature! := Feature_Header Background? Scenario_Definition*
//     Feature_Header, // Feature_Header! := #Language? Tags? #FeatureLine Feature_Description
//     Background, // Background! := #BackgroundLine Background_Description Scenario_Step*
//     Scenario_Definition, // Scenario_Definition! := Tags? (Scenario | ScenarioOutline)
//     Scenario, // Scenario! := #ScenarioLine Scenario_Description Scenario_Step*
//     ScenarioOutline, // ScenarioOutline! := #ScenarioOutlineLine ScenarioOutline_Description ScenarioOutline_Step* Examples_Definition*
//     Examples_Definition, // Examples_Definition! [#Empty|#Comment|#TagLine-&gt;#ExamplesLine] := Tags? Examples
//     Examples, // Examples! := #ExamplesLine Examples_Description Examples_Table?
//     Examples_Table, // Examples_Table! := #TableRow #TableRow*
//     Scenario_Step, // Scenario_Step := Step
//     ScenarioOutline_Step, // ScenarioOutline_Step := Step
//     Step, // Step! := #StepLine Step_Arg?
//     Step_Arg, // Step_Arg := (DataTable | DocString)
//     DataTable, // DataTable! := #TableRow+
//     DocString, // DocString! := #DocStringSeparator #Other* #DocStringSeparator
//     Tags, // Tags! := #TagLine+
//     Feature_Description, // Feature_Description := Description_Helper
//     Background_Description, // Background_Description := Description_Helper
//     Scenario_Description, // Scenario_Description := Description_Helper
//     ScenarioOutline_Description, // ScenarioOutline_Description := Description_Helper
//     Examples_Description, // Examples_Description := Description_Helper
//     Description_Helper, // Description_Helper := #Empty* Description? #Comment*
//     Description, // Description! := #Other+
//     ;
// 
//     public static RuleType cast(TokenType tokenType) {
//         return RuleType.values()[tokenType.ordinal()];
//     }
// }
// 
// Path: kheera-testrunner/src/main/java/gherkin/Parser.java
// public enum TokenType {
//     None,
//     EOF,
//     Empty,
//     Comment,
//     TagLine,
//     FeatureLine,
//     BackgroundLine,
//     ScenarioLine,
//     ScenarioOutlineLine,
//     ExamplesLine,
//     StepLine,
//     DocStringSeparator,
//     TableRow,
//     Language,
//     Other,
//     ;
// }


// Path: kheera-testrunner/src/main/java/gherkin/AstNode.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static gherkin.Parser.RuleType;
import static gherkin.Parser.TokenType;

package gherkin;



public class AstNode {
    private final Map<RuleType, List<Object>> subItems = new HashMap<RuleType, List<Object>>();
    public final RuleType ruleType;

    public AstNode(RuleType ruleType) {