/parsing/d/mulexprunit.d

http://github.com/wilkie/djehuty · D · 54 lines · 35 code · 11 blank · 8 comment · 5 complexity · 9278d302754eb5ea80bbdc5c88fb9dc4 MD5 · raw file

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