package org.jerlang.stdlib.beam_lib; import org.jerlang.type.List; import org.jerlang.type.Term; /** * = The Abstract Syntax Tree (AST) Chunk * * The AST Chunk contains the abstract syntax tree of the module. */ public class AbstractSyntaxTreeChunk extends Chunk { private final List ast; public AbstractSyntaxTreeChunk(Chunk chunk, Term ast) { super(ChunkId.ABST, chunk); this.ast = ast.toList(); } public List ast() { return ast; } @Override public String toString() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("{abstract_syntax_tree,["); List list = ast; while (list.length() > 0) { stringBuilder.append(list.head()).append(','); list = list.tail(); } if (ast.length() > 0) { stringBuilder.setLength(stringBuilder.length() - 1); } stringBuilder.append("]}"); return stringBuilder.toString(); } }