Exemple #1
0
        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));
            }
        }
Exemple #2
0
 internal void Clear()
 {
     Variables.Clear();
     Subroutines.Clear();
     Labels.Clear();
     Includes.Clear();
     Imports.Clear();
     Map.Clear();
     Summary.Clear();
     MainName = "";
     MainPath = "";
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        // 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);
        }