public Workshop Get() { // Match lobby settings, variables, and subroutines. MatchSettings(); MatchVariables(); MatchSubroutines(); // Match action copy if (ActionGroup(out var actions)) { return(new Workshop(Variables.ToArray(), Subroutines.ToArray(), actions.ToArray())); } // Match condition copy else if (ConditionGroup(out var conditions)) { return(new Workshop(Variables.ToArray(), Subroutines.ToArray(), conditions.ToArray())); } else { // Match rules while (Rule(out TTERule rule)) { Rules.Add(rule); } return(new Workshop(Variables.ToArray(), Subroutines.ToArray(), Rules.ToArray(), LobbySettings)); } }
internal void Clear() { Variables.Clear(); Subroutines.Clear(); Labels.Clear(); Includes.Clear(); Imports.Clear(); Map.Clear(); Summary.Clear(); MainName = ""; MainPath = ""; }
public Workshop GetActionList() { // Match variables and subroutines. MatchVariables(); MatchSubroutines(); // Match actions. if (ActionGroup(out var actions)) { return(new Workshop(Variables.ToArray(), Subroutines.ToArray(), actions.ToArray())); } return(null); }
// Subroutines bool MatchSubroutines() { if (!Match(Kw("subroutines"))) { return(false); } Match("{"); // Subroutine list while (Integer(out int index)) { Match(":"); Identifier(out string name); Subroutines.Add(new Subroutine(index, name)); } Match("}"); return(true); }