Guest User

Untitled

a guest
May 26th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.IO;
  7.  
  8. namespace Guido
  9. {
  10. class LexTest
  11. {
  12. Tokens tokens;
  13. Lexer lexer;
  14.  
  15. public Tokens Tokens
  16. {
  17. get
  18. {
  19. return tokens;
  20. }
  21. }
  22.  
  23. public bool Succeeded
  24. {
  25. get
  26. {
  27. return lexer.Succeeded;
  28. }
  29. }
  30.  
  31. public LexTest(string Source)
  32. {
  33. TokenTypes ttypes = new TokenTypes();
  34.  
  35. ttypes.Add(new LiteralTokenType("open_paren", "(", true, false, true));
  36. ttypes.Add(new LiteralTokenType("close_paren", ")", true, false, true));
  37. ttypes.Add(new LiteralTokenType("open_brace", "{", true, false, true));
  38. ttypes.Add(new LiteralTokenType("close_brace", "}", true, false, true));
  39. ttypes.Add(new LiteralTokenType("space", " ", false, false, true));
  40. ttypes.Add(new LiteralTokenType("comma", ",", true, false, true));
  41. ttypes.Add(new LiteralTokenType("open_square_bracket", "[", true, false, true));
  42. ttypes.Add(new LiteralTokenType("close_square_bracket", "]", true, false, true));
  43. ttypes.Add(new LiteralTokenType("equal", "=", true, false, true));
  44. ttypes.Add(new LiteralTokenType("line_break", "\r\n", false, true, true));
  45. ttypes.Add(new LiteralTokenType("tab", "\t", false, false, true));
  46. ttypes.Add(new CharFromRangeTokenType("identifier", CharRange.ArrayFromType(CharRangeType.Letter)));
  47. ttypes.Add(new CharFromRangeTokenType("number", CharRange.ArrayFromType(CharRangeType.Number)));
  48.  
  49. ttypes.Add(new LiteralTokenType("function", "function", true, false, true));
  50.  
  51. ttypes.Add(new StringTokenType("string", "\""));
  52.  
  53. lexer = new Lexer(ttypes, Source);
  54. lexer.FailAtUndefinedTokens = true;
  55. tokens = lexer.Tokenize();
  56. }
  57. }
  58. }
Add Comment
Please, Sign In to add comment