Ejemplo n.º 1
0
 public Vareble(string name, VaribleKind kind)
 {
     this.name = name;
     this.kind = kind;
 }
Ejemplo n.º 2
0
 /*инициализирует вид переменной с именем name*/
 static bool DetermineVarible(string name, VaribleKind kind)
 {
     bool result;
     if (!(result = DetermineVaribleInArr(ref LocalVaribles, ref name, kind)))
         result = DetermineVaribleInArr(ref GlobalVaribles, ref name, kind);
     return result;
 }
Ejemplo n.º 3
0
 /*инициализирует вид переменной с именем name в массиве arr*/
 static bool DetermineVaribleInArr(ref Vareble[] arr, ref string name, VaribleKind kind)
 {
     int i = 0;
     bool result = false;
     while ((i < arr.Length) && !result)
     {
         result = String.Compare(arr[i].name, name, true) == 0;
         if (result)
             arr[i].kind = arr[i].kind | kind;
         i++;
     }
     return result;
 }
Ejemplo n.º 4
0
 /*определяет назночение переменных в подпрограммах*/
 static void AnalyzeMethod(ref string str, ref int pos, VaribleKind kind)
 {
     string ident;
     char symbol;
     do
     {
         ident = FindNextIdentifier(ref str, ref pos, false);
         DetermineVarible(ident, kind);
         do
         {
             symbol = FindNextSymbol(ref str, ref pos);
         } while ((symbol != ';') && !IsLetterOfIdent(symbol));
         if (IsLetterOfIdent(symbol))
         {
             pos--;
             ident = FindNextIdentifier(ref str, ref pos, true);
         }
     } while (!(FindWordInArray(ref ident, ref WordsOfEndOperator) || symbol == ';'));
 }