ReferenceResolvingPass.h 586 B

12345678910111213141516171819202122232425
  1. /*
  2. * Copyright (c) 2023, Dan Klishch <danilklishch@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include "Compiler/GenericASTPass.h"
  8. namespace JSSpecCompiler {
  9. // ReferenceResolvingPass collects all variable names declared in the function and replaces
  10. // UnresolvedReference nodes with either SlotName, Variable, or FunctionPointer nodes.
  11. class ReferenceResolvingPass : public GenericASTPass {
  12. public:
  13. using GenericASTPass::GenericASTPass;
  14. protected:
  15. RecursionDecision on_entry(Tree tree) override;
  16. void on_leave(Tree tree) override;
  17. };
  18. }