PageRenderTime 21ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/parsing/d/volatilestmtunit.d

http://github.com/wilkie/djehuty
D | 51 lines | 28 code | 13 blank | 10 comment | 3 complexity | 31c38818d2371ebc6349ed3d117317c7 MD5 | raw file
  1. /*
  2. * expressionunit.d
  3. *
  4. * This module parses expressions.
  5. *
  6. */
  7. module parsing.d.volatilestmtunit;
  8. import parsing.parseunit;
  9. import parsing.token;
  10. import parsing.d.tokens;
  11. import parsing.d.nodes;
  12. import parsing.d.statementunit;
  13. import io.console;
  14. import djehuty;
  15. class VolatileStmtUnit : ParseUnit {
  16. override bool tokenFound(Token current) {
  17. switch (current.type) {
  18. case DToken.Semicolon:
  19. // Done.
  20. return false;
  21. default:
  22. if (this.state == 1) {
  23. // Error: Multiple statements!?
  24. // TODO:
  25. }
  26. lexer.push(current);
  27. // Statement Follows.
  28. auto tree = expand!(StatementUnit)();
  29. this.state = 1;
  30. break;
  31. }
  32. return true;
  33. }
  34. protected:
  35. string cur_string = "";
  36. static const string _common_error_msg = "";
  37. static const string[] _common_error_usages = null;
  38. }