# java-ast

> Java Parser for JavaScript/TypeScript, based on antlr4ts

Latest version **0.4.1** (published 2024-08-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install java-ast
pnpm add java-ast
yarn add java-ast
bun add java-ast
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.1 |
| Published | 2024-08-20 |
| First published | 2018-07-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 883.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Uri Shaked |
| Maintainers | pascalgn |
| Keywords | ast, java, parser, antlr, antlr4ts, abstract syntax tree, parse java, java parser |

## Links

- npm: https://www.npmjs.com/package/java-ast
- Repository: https://github.com/urish/java-ast
- npm.io page: https://npm.io/package/java-ast

## Dependencies (1)

- [antlr4ts](https://npm.io/package/antlr4ts.md) ^0.5.0-alpha.4

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 0.4.1 (latest) — 2024-08-20
- 0.4.0 — 2024-04-11
- 0.3.0 — 2020-07-20
- 0.2.0 — 2020-07-13
- 0.1.0 — 2018-07-11
- 0.0.1 — 2018-07-10

## README

# java-ast

[![npm version](https://img.shields.io/npm/v/java-ast.svg?style=flat-square)](https://www.npmjs.com/package/java-ast)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Java Parser for JavaScript/TypeScript, based on [antlr4ts](https://www.npmjs.com/package/antlr4ts), grammar taken from [antlr4's java grammar](https://github.com/antlr/grammars-v4/tree/master/java/java) too (so please report bugs and open pull requests related to grammars upstream)

## Usage Example

```typescript
import { parse, createVisitor } from 'java-ast';

const countMethods = (source: string) => {
  let ast = parse(source);

  return createVisitor({
    visitMethodDeclaration: () => 1,
    defaultResult: () => 0,
    aggregateResult: (a, b) => a + b,
  }).visit(ast);
};

console.log(
  countMethods(`
    class A {
      int a;
      void b() {}
      void c() {}
    }
    class B {
      void z() {}
    }
  `),
); // logs 3
```

## History

This project was originally created by [Uri Shaked](https://github.com/urish).

## See also

- [java-model](https://github.com/pascalgn/java-model) - Provides high-level access to the Java type model.

## License

[MIT](LICENSE)

---
_Source: https://npm.io/package/java-ast · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
