home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 40 / IOPROG_40.ISO / SOFT / NETFrameworkSDK.exe / comsdk.cab / samples1.exe / CLisp / Token.cs < prev    next >
Encoding:
Text File  |  2000-06-23  |  1.4 KB  |  103 lines

  1. using System;
  2.  
  3. namespace LexToken 
  4. {
  5.     
  6.     enum TokenType {
  7.     NUMBER = 0,
  8.     ALPHA = 1,
  9.     PLUS = 2,
  10.     MINUS = 3,
  11.     MUL = 4,
  12.     DIVIDE = 5,
  13.     LPAREN = 6,
  14.     RPAREN = 7,
  15.     QUOTE = 8,
  16.     CAR = 9,
  17.     CDR = 10,
  18.     CONS = 11,
  19.     SUBST = 12,
  20.     STRING = 13,
  21.     DEFUN = 14,
  22.     SETQ  = 15,
  23.     NIL   = 16,
  24.     NULL  = 17,
  25.     IF    = 18,
  26.     ATOM  = 19,
  27.     DO = 20,
  28.     LT = 21,
  29.     GT = 22,
  30.     EQ = 23,
  31.     LE = 24,
  32.     GE = 25,
  33.     EOFSYM = 0xFF
  34.     }
  35.  
  36.  
  37.  
  38.  
  39.     class Token {
  40.     public TokenType Type;
  41.  
  42.     public Token(TokenType t)
  43.     {
  44.         Type = t;
  45.     }
  46.  
  47.     public override String ToString()
  48.     {
  49.         return (Type.ToString());
  50.     }
  51.     }
  52.  
  53.     class NumberToken: Token
  54.     {
  55.     public long Value;
  56.     
  57.     public NumberToken(String val) : base(TokenType.NUMBER)
  58.     {
  59.         Value = Convert.ToInt64(val);
  60.     }
  61.     
  62.     public override String ToString()
  63.     {
  64.         return (Type.ToString() + ", value =" + Value);
  65.     }
  66.     
  67.     }
  68.  
  69.     class AlphaToken : Token
  70.     {
  71.     public String Name;
  72.     
  73.     public AlphaToken(String n) : base (TokenType.ALPHA)
  74.     {
  75.         Name = n;
  76.     }
  77.     
  78.  
  79.     public override String ToString()
  80.     {
  81.         return (Type.ToString() + ", Name =" + Name);
  82.     }
  83.     }
  84.  
  85.     class StringToken : Token
  86.     {
  87.     public String Value;
  88.     
  89.     public StringToken(String v) : base (TokenType.STRING)
  90.     {
  91.         Value = v;
  92.     }
  93.  
  94.     public override String ToString()
  95.     {
  96.         return (Type.ToString() + ", Value =" + Value);
  97.     }
  98.     
  99.     }
  100.  
  101. }
  102.  
  103.