Exemple #1
0
        // Lexical scanner
        private void Scan()
        {
            int k;

            while (Cradle.Look == Cradle.CR)
            {
                Cradle.Fin();
            }
            if (Cradle.IsAlpha(Cradle.Look))
            {
                GetName();
            }
            else if (Cradle.IsDigit(Cradle.Look))
            {
                GetNum();
            }
            else if (IsOp(Cradle.Look))
            {
                GetOp();
            }
            else
            {
                Value = Cradle.Look.ToString();
                Token = SymType.Operator;
                Cradle.GetChar();
            }
            Cradle.SkipWhite();
        }
 // Recognize and translate a statement block
 private void Block(string L)
 {
     while ("elu".IndexOf(Cradle.Look) == -1)
     {
         Cradle.Fin();
         switch (Cradle.Look)
         {
             case 'i': DoIf(L); break;
             case 'w': DoWhile(); break;
             case 'p': DoLoop(); break;
             case 'r': DoRepeat(); break;
             case 'f': DoFor(); break;
             case 'd': DoDo(); break;
             case 'b': DoBreak(L); break;
             default: Assignment(); break;
         }
         Cradle.Fin();
     }
 }