示例#1
0
        internal void GenerateVariableList(PlanningParser.ListVariableContext context)
        {
            do
            {
                if (context.VAR().Count != 0)
                {
                    string type = context.type() == null ? DefaultType : context.type().GetText();

                    foreach (var varNode in context.VAR())
                    {
                        var tuple = new Tuple <string, string>(varNode.GetText(), type);
                        _variableList.Add(tuple);
                    }
                }
                context = context.listVariable();
            } while (context != null);
        }
        public static IReadOnlyList <string> GetVariableNameList(this PlanningParser.ListVariableContext context)
        {
            List <string> result = new List <string>();

            do
            {
                int count = context.VAR().Count;
                if (count != 0)
                {
                    for (int i = 0; i < count; i++)
                    {
                        result.Add(context.VAR(i).GetText());
                    }
                }
                context = context.listVariable();
            } while (context != null);

            return(result);
        }
示例#3
0
        public static string GetFullName(PlanningParser.ActionDefineContext context)
        {
            string        name     = context.actionSymbol().GetText();
            List <string> termList = new List <string>();

            PlanningParser.ListVariableContext listVariableContext = context.listVariable();
            do
            {
                if (listVariableContext.VAR().Count != 0)
                {
                    foreach (var varNode in listVariableContext.VAR())
                    {
                        termList.Add(varNode.GetText());
                    }
                }
                listVariableContext = listVariableContext.listVariable();
            } while (listVariableContext != null);
            return(GetFullName(name, termList));
        }
        public static IReadOnlyList <IList <string> > GetCollection(this PlanningParser.ListVariableContext context)
        {
            List <IList <string> > result = new List <IList <string> >();

            do
            {
                int count = context.VAR().Count;
                if (count != 0)
                {
                    string type = context.type() == null ? PlanningType.ObjectType.Name : context.type().GetText();

                    for (int i = 0; i < count; i++)
                    {
                        var constList = Globals.TermInterpreter.GetConstList(type);
                        result.Add(constList);
                    }
                }
                context = context.listVariable();
            } while (context != null);

            return(result);
        }
示例#5
0
 /// <summary>
 /// Enter a parse tree produced by <see cref="PlanningParser.listVariable"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void EnterListVariable([NotNull] PlanningParser.ListVariableContext context)
 {
 }