symbol.js 933 B

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. var Class = require("rtl.js").Class;
  3. var Errors = require("errors.js");
  4. var Type = require("type.js");
  5. var Symbol = Class.extend({
  6. init: function Symbol(id, info){
  7. this.__id = id;
  8. this.__info = info;
  9. },
  10. id: function(){return this.__id;},
  11. info: function(){return this.__info;},
  12. isModule: function(){return this.__info instanceof Type.Module;},
  13. isVariable: function(){return this.__info instanceof Type.Variable;},
  14. isConst: function(){return this.__info instanceof Type.Const;},
  15. isType: function(){return this.__info instanceof Type.TypeId;},
  16. isProcedure: function(){return this.__info instanceof Type.Procedure;}
  17. });
  18. var FoundSymbol = Class.extend({
  19. init: function(symbol, scope){
  20. this.__symbol = symbol;
  21. this.__scope = scope;
  22. },
  23. symbol: function(){return this.__symbol;},
  24. scope: function(){return this.__scope;}
  25. });
  26. exports.Symbol = Symbol;
  27. exports.Found = FoundSymbol;