Example #1
0
 /// <summary>
 /// Rimuove tutti gli elementi presenti nella lista
 /// </summary>
 /// <param name="item">Linea di codice</param>
 public void RemoveAll(FunctionSection item)
 {
     while (Exist(item))
     {
         Remove(item);
     }
 }
Example #2
0
        public void AnalyzeFunction(FunctionSection fs)
        {
            vc      = new VariableCollection();
            this.fs = fs;
            bool findReturn = false;

            res.AddLine(GenerateSign(fs.Function), lm);

            AnalyzeCodeLines(fs.FunctionCodes);

            for (int i = 0; i < fs.FunctionCodes.Count && findReturn == false; i++)
            {
                if (Regex.IsMatch(fs.FunctionCodes[i].Code, @"ritorna", RegexOptions.IgnoreCase))
                {
                    findReturn = true;
                }
            }
            if (!findReturn && fs.Function.Name.ToLower() != "programma")
            {
                res.AddLine("\treturn new Variable(\"NULL\",null);", lm);
            }


            res.AddLine("}", lm);
        }
Example #3
0
 /// <summary>
 /// Inserisce una linea di codice nella raccolta alla posizione indicata
 /// </summary>
 /// <param name="index">Posizione</param>
 /// <param name="item">Linea di codice</param>
 /// <returns>Retituisce false in caso di Linea di codice non valida</returns>
 public bool Insert(int index, FunctionSection item)
 {
     if (item == null)
     {
         return(false);
     }
     _scls.Insert(index, item);
     return(true);
 }
Example #4
0
 //Metodi
 /// <summary>
 /// Aggiunge una Linea di codice alla raccolta
 /// </summary>
 /// <param name="item">Linea di codice</param>
 /// <returns>Retituisce false in caso di Linea di codice non valida</returns>
 public bool Add(FunctionSection item)
 {
     if (item == null)
     {
         return(false);
     }
     _scls.Add(item);
     return(true);
 }
Example #5
0
 /// <summary>
 /// Infividua la prima ricorrenza dell'oggetto nella raccolta a partire dall'indice
 /// </summary>
 /// <param name="start">Indice si partenza</param>
 /// <param name="item">Linea di codice</param>
 /// <returns>Indice della prima ricorrenza</returns>
 public int FirstIndexOf(int start, FunctionSection item)
 {
     for (int i = start; i < _scls.Count; i++)
     {
         if (_scls[i].Equals(item))
         {
             return(i);
         }
     }
     return(-1);
 }
Example #6
0
        //Metodi statici
        public static SectionCollection ExtractCollection(string RawCode, LogManager lm)
        {
            SectionCollection sc = new SectionCollection();

            CodeIndex[] ci = CodeElaborator.FindFunctionPosition(RawCode, lm);

            for (int i = 0; i < ci.Length; i++)
            {
                sc.Add(FunctionSection.ExtractSection(RawCode.Substring(ci[i].Index, ci[i].Lenght), RawCode.Substring(0, ci[i].Index).Split('\n').Length, lm));
            }

            return(sc);
        }
Example #7
0
        /// <summary>
        /// Indica il numero di elementi uguali che la raccolta contiene
        /// </summary>
        /// <param name="item">Linea di codice</param>
        /// <returns>Numero di ricorrenze nella collezione</returns>
        public int Contains(FunctionSection item)
        {
            int count = 0;
            int sup   = 0;

            do
            {
                sup = FirstIndexOf(sup, item);
                if (sup != -1)
                {
                    count++;
                }
            }while (sup != -1);

            return(count);
        }
Example #8
0
 /// <summary>
 /// Permette la comparazione di due istanze della classe
 /// </summary>
 /// <param name="obj">Oggetto da confrontare</param>
 /// <returns>Risultato della comparazione</returns>
 public bool Equals(FunctionSection obj)
 {
     return(this.funct == obj.funct && this.codes == obj.codes);
 }
Example #9
0
 /// <summary>
 /// Individua la prima ricorrenza dell'oggetto nella raccolta
 /// </summary>
 /// <param name="item">Linea di codice</param>
 /// <returns>Indice della prima ricorrenza</returns>
 public int FirstIndexOf(FunctionSection item)
 {
     return(FirstIndexOf(0, item));
 }
Example #10
0
 /// <summary>
 /// Controlla l'esistenza dell'elemento nella raccolta
 /// </summary>
 /// <param name="item">Linea di codice</param>
 /// <returns>Esistenza dell'elemento</returns>
 public bool Exist(FunctionSection item)
 {
     return(FirstIndexOf(item) != -1);
 }
Example #11
0
 /// <summary>
 /// Rimuove il primo elemento presente nella raccolta
 /// </summary>
 /// <param name="item">Linea di codice</param>
 public void Remove(FunctionSection item)
 {
     RemoveAt(FirstIndexOf(item));
 }