Comment.js 959 B

12345678910111213141516171819202122232425262728293031323334353637
  1. var TYPE = require('../../tokenizer').TYPE;
  2. var CHARCODE = require('../../tokenizer').CHARCODE;
  3. var ASTERISK = CHARCODE.Asterisk;
  4. var SOLIDUS = CHARCODE.Solidus;
  5. var COMMENT = TYPE.Comment;
  6. // '/*' .* '*/'
  7. module.exports = {
  8. name: 'Comment',
  9. structure: {
  10. value: String
  11. },
  12. parse: function() {
  13. var start = this.scanner.tokenStart;
  14. var end = this.scanner.tokenEnd;
  15. this.eat(COMMENT);
  16. if ((end - start + 2) >= 2 &&
  17. this.scanner.source.charCodeAt(end - 2) === ASTERISK &&
  18. this.scanner.source.charCodeAt(end - 1) === SOLIDUS) {
  19. end -= 2;
  20. }
  21. return {
  22. type: 'Comment',
  23. loc: this.getLocation(start, this.scanner.tokenStart),
  24. value: this.scanner.source.substring(start + 2, end)
  25. };
  26. },
  27. generate: function(node) {
  28. this.chunk('/*');
  29. this.chunk(node.value);
  30. this.chunk('*/');
  31. }
  32. };