code-analyzer ast-dump

<!-- prettier-ignore-start -->

Dump the Abstract Syntax Tree (AST) for a given source file.

Description for code-analyzer ast-dump

Generate and display the AST that PMD produces when parsing a source file. This is useful for understanding how PMD interprets your code and for developing custom PMD rules. The command supports Apex, Visualforce, HTML, XML, and JavaScript files.

Flags

Flag Name (Long) Flag Name (Short) Description
<code>‑‑file</code> N/A Type: Value<br>Required<br><br>Path to the source file to parse.<br><br>The file whose AST you want to generate. The file must exist and be a regular file (not a directory). If you don't specify the --language flag, the language is auto-detected from the file extension.
<code>‑‑flags‑dir</code> N/A Type: Value<br><br>Import flag values from a directory.
<code>‑‑format</code> N/A Type: Value<br>Valid Values: json, xml<br>Default value: xml<br><br>Output format for the AST.<br><br>Choose between xml (default) or json. The XML format outputs the raw PMD AST XML, preserving the full tree structure. The JSON format provides a flat array of nodes with names, attributes, parent, and ancestor information.
<code>‑‑json</code> N/A Type: Boolean<br><br>Format output as json.
<code>‑‑language</code> <code>‑l</code> Type: Value<br>Valid Values: apex, visualforce, html, xml, javascript<br>Default value: apex<br><br>Language of the source file.<br><br>Explicitly specify the language of the source file. Defaults to apex. Supported languages are: apex, visualforce, html, xml, and javascript.
<code>‑‑output‑file</code> N/A Type: Value<br><br>Path to the file where the AST output is written.<br><br>If specified, the AST output is written to this file instead of being displayed in the terminal. The content format depends on the --format flag.

Examples for code-analyzer ast-dump

Dump the AST for an Apex class file in JSON format (default):

sf code-analyzer ast-dump --file ./force-app/main/default/classes/MyClass.cls

Dump the AST in XML format:

sf code-analyzer ast-dump --file ./force-app/main/default/classes/MyClass.cls --format xml

Dump the AST and write the output to a file:

sf code-analyzer ast-dump --file ./force-app/main/default/classes/MyClass.cls --output-file ast-output.json

Explicitly specify the language when the file extension is ambiguous:

sf code-analyzer ast-dump --file ./src/myfile.html --language html
<!-- prettier-ignore-end -->