Exemplo n.º 1
0
 // Parse and translate a program
 private void DoProgram()
 {
     Block("");
     if (Cradle.Look != 'e')
     {
         Cradle.Expected("End");
     }
     Cradle.EmitLn("END");
 }
Exemplo n.º 2
0
 // Get a number
 private void GetNum()
 {
     Value = "";
     if (!Cradle.IsDigit(Cradle.Look))
     {
         Cradle.Expected("Integer");
     }
     while (Cradle.IsDigit(Cradle.Look))
     {
         Value += Cradle.Look;
         Cradle.GetChar();
     }
     Token = SymType.Number;
 }
Exemplo n.º 3
0
 // Get an operator
 private void GetOp()
 {
     Value = "";
     if (!IsOp(Cradle.Look))
     {
         Cradle.Expected("Operator");
     }
     while (IsOp(Cradle.Look))
     {
         Value += Cradle.Look;
         Cradle.GetChar();
     }
     Token = SymType.Operator;
 }
Exemplo n.º 4
0
 // Get an identifier
 private void GetName()
 {
     Value = "";
     if (!Cradle.IsAlpha(Cradle.Look))
     {
         Cradle.Expected("Name");
     }
     while (Cradle.IsAlNum(Cradle.Look))
     {
         Value += char.ToUpper(Cradle.Look);
         Cradle.GetChar();
     }
     Token = KWCode[Lookup(Value) + 1];
 }
Exemplo n.º 5
0
 // Get an operator
 private void GetOp()
 {
     Value = "";
     if (!IsOp(Cradle.Look))
     {
         Cradle.Expected("Operator");
     }
     while (IsOp(Cradle.Look))
     {
         Value += Cradle.Look;
         Cradle.GetChar();
     }
     if (Value.Length == 1)
     {
         Token = Value[0];
     }
     else
     {
         Token = '?';
     }
 }
Exemplo n.º 6
0
        // Get an identifier
        private void GetName()
        {
            int k;

            Value = "";
            if (!Cradle.IsAlpha(Cradle.Look))
            {
                Cradle.Expected("Name");
            }
            while (Cradle.IsAlNum(Cradle.Look))
            {
                Value += char.ToUpper(Cradle.Look);
                Cradle.GetChar();
            }
            k = Lookup(Value);
            if (k == -1)
            {
                Token = SymType.Ident;
            }
            else
            {
                Token = (SymType)k;
            }
        }