/parsing/d/orexprunit.d

http://github.com/wilkie/djehuty · D · 53 lines · 34 code · 11 blank · 8 comment · 5 complexity · 3620f663d38ef4dd5b275f6ee86bf740 MD5 · raw file

  1. /*
  2. * expressionunit.d
  3. *
  4. * This module parses expressions.
  5. *
  6. */
  7. module parsing.d.orexprunit;
  8. import parsing.parseunit;
  9. import parsing.token;
  10. import parsing.d.tokens;
  11. import parsing.d.nodes;
  12. import parsing.d.xorexprunit;
  13. import io.console;
  14. import djehuty;
  15. class OrExprUnit : ParseUnit {
  16. override bool tokenFound(Token current) {
  17. switch (current.type) {
  18. case DToken.Or:
  19. if (this.state == 1) {
  20. Console.putln("OR");
  21. this.state = 0;
  22. break;
  23. }
  24. // Fall through
  25. goto default;
  26. default:
  27. lexer.push(current);
  28. if (this.state == 1) {
  29. // Done.
  30. return false;
  31. }
  32. auto tree = expand!(XorExprUnit)();
  33. this.state = 1;
  34. break;
  35. }
  36. return true;
  37. }
  38. protected:
  39. string cur_string = "";
  40. static const string _common_error_msg = "";
  41. static const string[] _common_error_usages = null;
  42. }