⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dumpastvisitor.java

📁 SRI international 发布的OAA框架软件
💻 JAVA
字号:
package antlr_oaa;

/* ANTLR Translator Generator
 * Project led by Terence Parr at http://www.jGuru.com
 * Software rights: http://www.antlr.org/RIGHTS.html
 *
 * $Id: DumpASTVisitor.java,v 1.1 2002/11/08 17:38:06 agno Exp $
 */

import java.io.*;
import antlr_oaa.collections.AST;

/** Simple class to dump the contents of an AST to the output */
public class DumpASTVisitor implements ASTVisitor {
    protected int level = 0;


    private void tabs() {
	for (int i = 0; i < level; i++) {
	    System.out.print("   ");
	}
    }

    public void visit(AST node) {
	// Flatten this level of the tree if it has no children
	boolean flatten = /*true*/ false;
	AST node2;
	for (node2 = node; node2 != null ; node2 = node2.getNextSibling()) {
	    if (node2.getFirstChild() != null) {
		flatten = false;
		break;
	    }
	}

	for (node2 = node; node2 != null; node2 = node2.getNextSibling()) {
	    if (!flatten || node2 == node) {
		tabs();
	    }
	    if ( node2.getText()==null ) {
		System.out.print("nil");
	    }
	    else {
		System.out.print(node2.getText());
	    }

	    System.out.print(" [" + node2.getType() + "] ");

	    if (flatten) {
		System.out.print(" ");
	    }
	    else {
		System.out.println("");
	    }

	    if ( node2.getFirstChild() != null ) {
		level++;
		visit(node2.getFirstChild());
		level--;
	    }
	}

	if (flatten) {
	    System.out.println("");
	}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -