// 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(); } }