Beispiel #1
0
        public override Statement Interprete(string src, int line)
        {
            var returns = new ObjCallStmt();

            returns.Line = line;
            string tmp1 = "";

            for (int index = 0; index < src.Split('(').Length; index++)
            {
                string i = src.Split('(')[index];
                if (index == 0)
                {
                }
                else
                {
                    tmp1 += i + "(";
                }
            }
            string value = tmp1.Remove(tmp1.Length - 2, 2);
            string tmp   = "";

            for (int index = 0; index < src.Split('(')[0].Split('.').Length; index++)
            {
                string i = src.Split('(')[0].Split('.')[index];
                int    l = src.Split('(')[0].Split('.').Length;
                if (index == l - 1)
                {
                    returns.Name = i;
                }
                else
                {
                    tmp += i + ".";
                }
            }
            tmp = tmp.TrimEnd('.');

            returns.Target = tmp;

            if (value.Contains(','))
            {
                foreach (string i in value.Split(','))
                {
                    returns.Paramaters.Add(StatmentVarHandler.HandleVar(i));
                }
            }
            else
            {
                if (value != "")
                {
                    returns.Paramaters.Add(StatmentVarHandler.HandleVar(value));
                }
            }
            return(returns);
        }
Beispiel #2
0
        public override Statement Interprete(string src, int line)
        {
            var returns = new DecSetStmt();

            returns.Line = line;
            var   reg   = new Regex(Parser.Grammar.GetPattern("varset").ToString());
            Match match = reg.Match(src);

            if (match.Success)
            {
                returns.Name = match.Groups["Name"].Value;

                returns.Operator = match.Groups["op"].Value;

                returns.Value = StatmentVarHandler.HandleVar(match.Groups["Value"].Value);
            }
            return(returns);
        }
Beispiel #3
0
        public override Statement Interprete(string src, int line)
        {
            var returns = new CallStmt();

            returns.Line = line;
            var   reg   = new Regex(Parser.Grammar.GetPattern("call").ToString());
            Match match = reg.Match(src);

            if (match.Success)
            {
                returns.Paramaters = new List <Primitive>();
                returns.Name       = match.Groups[1].Value;
                if (match.Groups["params"].Value.Contains(','))
                {
                    foreach (string i in match.Groups["params"].Value.TrimEnd(')').Split(','))
                    {
                        returns.Paramaters.Add(StatmentVarHandler.HandleVar(i));
                    }
                }
            }

            return(returns);
        }