Provides js-specific passes for tools.analyzer
THIS PROJECT HAS BEEN ABANDONED, USE cljs.analyzer INSTEAD
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
Example Usage
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)})) ..)
AST Quickref
Releases and Dependency Information
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>
Changelog
API Index
Developer Information
License
Copyright © 2014 Nicola Mometto, Rich Hickey & contributors.
Distributed under the Eclipse Public License, the same as Clojure.