Provides js-specific passes for tools.analyzer
As of clojurescript 1.10.x, cljs.analyzer
produces an AST in the same format as tools.analyzer
.
The last version of tools.analyzer.js
works with a very ancient version of clojurescript
.
This project should be considered abandoned and not be used as the official maintainer doesn't have time to update and maintain it.
- Example Usage
- AST Quickref
- Releases and Dependency Information
- Changelog
- API Index
- Developer Information
- License
user> (require '[clojure.tools.analyzer.js :as a]
'[clojure.tools.analyzer.env :as env)
nil
user> (def env (a/global-env))
#'user/env
user> (env/with-env env (a/analyze 1))
{:op :const,
:top-level true,
:tag number,
:env {:context :ctx/statement, :locals {}, :ns cljs.user},
:type :number,
:literal? true,
:val 1,
:form 1}
user> (env/with-env env (a/analyze-ns 'cljs.core))
[{:op :ns ..}
{:op :def ..}
..]
If clojure.tools.analyzer.js
is used inside a cljs macro being expanded by cljs.analyzer
, you can use cljs-env->env
to populate tools.analyzer.js' global env from clojure.analyzer's one:
clojure.tools.analyzer.js> (env/ensure (env/with-env (merge (env/deref-env)
{:namespaces (cljs-env->env)}))
..)
Latest stable release: 0.1.0-beta5
Leiningen dependency information:
[org.clojure/tools.analyzer.js "0.1.0-beta5"]
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.analyzer.js</artifactId>
<version>0.1.0-beta5</version>
</dependency>
Copyright © 2014 Nicola Mometto, Rich Hickey & contributors.
Distributed under the Eclipse Public License, the same as Clojure.