ScannerAdapter.cs 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // ScannerAdapter.cs
  2. // (C) Sergey Chaban ([email protected])
  3. using System;
  4. namespace Mono.ILASM {
  5. /// <summary>
  6. /// </summary>
  7. public class ScannerAdapter : yyParser.yyInput {
  8. private ITokenStream tokens;
  9. /// <summary>
  10. /// </summary>
  11. /// <param name="tokens"></param>
  12. public ScannerAdapter (ITokenStream tokens)
  13. {
  14. this.tokens = tokens;
  15. }
  16. /// <summary>
  17. /// </summary>
  18. public ITokenStream BaseStream {
  19. get {
  20. return tokens;
  21. }
  22. }
  23. //
  24. // yyParser.yyInput interface
  25. //
  26. /// <summary>
  27. /// </summary>
  28. /// <returns></returns>
  29. public bool advance ()
  30. {
  31. return (tokens.NextToken != ILToken.EOF);
  32. }
  33. /// <summary>
  34. /// </summary>
  35. /// <returns></returns>
  36. public int token ()
  37. {
  38. return tokens.LastToken.TokenId;
  39. }
  40. /// <summary>
  41. /// </summary>
  42. /// <returns></returns>
  43. public object value ()
  44. {
  45. return tokens.LastToken.Value;
  46. }
  47. }
  48. }