Exemplo n.º 1
0
 public mte(KScriptContainer container, string first_variable_id, string second_variable_id)
     : base(container, first_variable_id, second_variable_id)
 {
 }
Exemplo n.º 2
0
 public HtmlObjectParser(KScriptContainer container) : base(container)
 {
 }
Exemplo n.º 3
0
 /// <summary>
 /// Constructor with KScriptContainer object initialised.
 /// </summary>
 /// <param name="container">The KScriptContainer to initialise with.</param>
 public KScriptIO(KScriptContainer container) => SetContainer(container);
Exemplo n.º 4
0
 /// <summary>
 /// Method used to set the ParentContainer property.
 /// </summary>
 /// <param name="container">The KScriptContainer object to use.</param>
 internal void SetContainer(KScriptContainer container) => ParentContainer = container;
Exemplo n.º 5
0
        // <watcher handle_method="once">
        //     <watchers>
        //         <watch for="name"/>
        //         <watch for="age" />
        //     </watchers>

        //     <rules>
        //         <rule condtion="@empty($name)">
        //             <echo>You must enter a name</echo>
        //         </rule>

        //         <rule condition="@more_less($name,gt,10)">
        //             <echo>Name can't be more than 10</echo>
        //         </rule>
        //     </rules>
        // </watcher>

        public WatcherHandler(KScriptContainer container) : base(container)
        {
        }
Exemplo n.º 6
0
 public MenuHandler(KScriptContainer container) : base(container)
 {
 }
Exemplo n.º 7
0
 public not_zero(KScriptContainer container, string value) : base(container, value)
 {
 }
Exemplo n.º 8
0
 public KScriptValidator(KScriptContainer container)
 {
     validationObjects = new List <KScriptValidationObject>();
     Container         = container;
 }
Exemplo n.º 9
0
        public static List <ICommand> GetCommands(string str, KScriptContainer container, KScriptBaseObject baseObj)
        {
            //Count all open brackets, when finding close bracket, length of string to array

            Stack <ICommand> commands = new Stack <ICommand>();

            List <ICommand> All_Commands = new List <ICommand>();

            char[] str_cmds = str.ToCharArray();

            ICommandObject bracket      = new ICommandObject(str, container, baseObj);
            ParamTracker   paramTracker = new ParamTracker();

            HashSet <char> allowedChars = new HashSet <char>(new[] { '(', ')', char.Parse("'") });
            List <char>    stack        = new List <char>(str.Where(allowedChars.Contains));

            int index = -1;

            bool ignore = false, encountered_cmd = false;

            for (int i = 0; i < str_cmds.Length; i++)
            {
                if (str_cmds[i].Equals('@') && !ignore)
                {
                    encountered_cmd = true;
                }

                if (encountered_cmd)
                {
                    paramTracker.Track(str_cmds[i], i);
                }


                if (str_cmds[i].Equals(char.Parse("'")) && encountered_cmd)
                {
                    ignore = !ignore;
                }

                if (str_cmds[i].Equals('@') && !ignore && encountered_cmd)
                {
                    bracket = new ICommandObject(str, container, baseObj);
                    bracket.IndexProperties.Start = i;
                    bracket.Index = ++index;
                    commands.Push(bracket);
                    continue;
                }
                else if (str_cmds[i].Equals('$') && !ignore && encountered_cmd)
                {
                    //ignore = !ignore;
                }
                else if (str_cmds[i].Equals('(') && !ignore && encountered_cmd)
                {
                    if (commands.Peek().IsCommandObject)
                    {
                        commands.Peek().GetCommandObject().EndNameIndex = i;
                    }
                    continue;
                }
                else if (str_cmds[i].Equals(',') && !ignore && encountered_cmd && commands.Count > 0)
                {
                    if (commands.Any())
                    {
                        ICommand cmd = commands.Peek();

                        if (cmd.IsCommandObject)
                        {
                            if (paramTracker.HasParams)
                            {
                                IValue variable = new IValue(paramTracker.GetIndexPair(), container);
                                cmd.GetCommandObject().Children.Enqueue(variable);
                            }
                        }
                    }
                }
                else if (str_cmds[i].Equals(')') && !ignore && encountered_cmd && commands.Count > 0)
                {
                    if (!commands.Any())
                    {
                        All_Commands.Add(bracket);
                        continue;
                    }

                    ICommand cmd = commands.Pop();
                    cmd.IndexProperties.End = i;

                    if (paramTracker.HasParams)
                    {
                        if (cmd.IsCommandObject)
                        {
                            if (cmd.GetCommandObject().InnerCommand.Length > 0)
                            {
                                IValue variable = new IValue(paramTracker.GetIndexPair(), container);
                                cmd.GetCommandObject().Children.Enqueue(variable);
                            }
                        }
                        else
                        {
                            IValue variable = new IValue(paramTracker.GetIndexPair(), container);
                            cmd.GetCommandObject().Children.Enqueue(variable);
                        }
                    }

                    if (commands.Count == 0)
                    {
                        All_Commands.Add(cmd);
                    }

                    if (commands.Count > 0 && commands.Peek().IsCommandObject&& !commands.Peek().GetCommandObject().IsClosed)
                    {
                        commands.Peek().GetCommandObject().Children.Enqueue(cmd);
                        continue;
                    }

                    All_Commands.Add(cmd);
                    continue;
                }
            }

            if (!(stack.Count % 2 == 0) && encountered_cmd)
            {
                throw new KScriptExceptions.KScriptException("KScript Command is incorrectly formatted - check brackets match and that all (') symbols are surrounding strings." +
                                                             "\nError occurs when parsing string: \n" + "----------------------------------------------------\n" + str);
            }

            return(All_Commands);
        }
Exemplo n.º 10
0
 public is_number(KScriptContainer container, string value) : base(container, value)
 {
 }
Exemplo n.º 11
0
 public upper(KScriptContainer container, string variable_id) : base(container, variable_id)
 {
 }
Exemplo n.º 12
0
 public MArrayParser(KScriptContainer container) : base(container)
 {
 }
Exemplo n.º 13
0
 internal void Init(KScriptContainer container) => SetContainer(container);
Exemplo n.º 14
0
 public ITiedVariableFunction(KScriptContainer container, string first_variable_id, string second_variable_id) : base(container)
 {
     First_VariableID  = first_variable_id;
     Second_VariableID = second_variable_id;
 }
Exemplo n.º 15
0
 public rule(KScriptContainer container) => SetContainer(container);