コード例 #1
0
ファイル: Lexer.cs プロジェクト: jakl/hashite
 /// <summary>
 /// Transfering a list of strings to a list of token elements
 /// </summary>
 /// <param name="ListS"> list of strings </param>
 /// <returns> list of token elements </returns>
 static List<Element> StringsToElements(List<string> ListS)
 {
     List<Element> ListE = new List<Element>();
     foreach (string s in ListS)
     {
         Element n = new Element(s);
         switch (n.Type)
         {
             case C.Operation: n = new Operation(n); break;
             case C.Number: n = new Number(n); break;
             case C.Function: n = new FunctionElement(n); break;
             case C.Control: n = new Control(n); break;
         }
         ListE.Add(n);
     }
     return ListE;
 }
コード例 #2
0
ファイル: Element.cs プロジェクト: jakl/hashite
        /// <summary>
        /// Creating an operation based on an existing element
        /// </summary>
        /// <param name="e"> existing element </param>
        public Operation(Element e)
        {
            iType = C.Operation;

            sValue = e.ToString();

            switch (sValue)
            {
                case "+": iRank = 1; break;
                case "-": iRank = 1; break;
                case "*": iRank = 2; break;
                case "/": iRank = 2; break;
                case "%": iRank = 2; break;
                case "^": iRank = 3; break;
            }
        }
コード例 #3
0
ファイル: Element.cs プロジェクト: jakl/hashite
        /// <summary>
        /// creating a number based on an existing element
        /// </summary>
        /// <param name="e"> existing element </param>
        public Number(Element e)
        {
            iType = C.Number;
            sValue = e.ToString();

            try // Checking if it is supposed to be a variable
            {
                dValue = double.Parse(sValue);
            }
            catch
            {
                sName = sValue;

                // creating a new variable if it doesn't exist yet
                Number n = Variable.CheckName(sName);
                if (n == null)
                {
                    Number num = new Number("0");
                    num.Name = sName;
                    Variable.Add(num);
                }
            }
        }
コード例 #4
0
ファイル: Element.cs プロジェクト: jakl/hashite
 /// <summary>
 /// Creating a control element based on an existing element
 /// </summary>
 /// <param name="e"> existing element </param>
 public Control(Element e)
 {
     iType = C.Control;
     sValue = e.ToString();
 }
コード例 #5
0
ファイル: Element.cs プロジェクト: jakl/hashite
 /// <summary>
 /// Creating a function element based on an existing element
 /// </summary>
 /// <param name="e"> existing element </param>
 public FunctionElement(Element e)
 {
     iType = C.Function;
     sValue = e.ToString();
 }