package xtc.lang.blink;
import xtc.tree.GNode;
import xtc.tree.Printer;
import xtc.lang.jeannie.JeanniePrinter;
public final class CommandAstPrinter extends JeanniePrinter {
public CommandAstPrinter(final Printer printer) {
super(printer, null);
}
/** Visit a BreakClassCommand = QualifiedIdentifier LineNumber. */
public final void visitBreakClassCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("stop at ").p(n.getNode(0)).p(':').p(n.getString(1)).pln();
exitJava();
}
/** Visit a BreakFileCommand = FileName LineNumber. */
public final void visitBreakFileCommand(final GNode n) {
_printer.p("break ").p(n.getString(0)).p(':').p(n.getString(1)).pln();
}
/** Visit a C2jCommand = (no children). */
public final void visitC2jCommand(final GNode n) {
assert 0 == n.size();
_printer.p("c2j").pln();
}
/** Visit a ContinueCommand = (no children). */
public final void visitContinueCommand(final GNode n) {
assert 0 == n.size();
_printer.p("continue").pln();
}
/** Visit a DeleteCommand = IntegerLiteral. */
public final void visitDeleteCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("delete ").p(n.getNode(0)).pln();
exitJava();
}
/** Visit a DownCommand = IntegerLiteral. */
public final void visitDownCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("down ").p(n.getNode(0)).pln();
exitJava();
}
/** Visit a ExitCommand = (no children). */
public final void visitExitCommand(final GNode n) {
assert 0 == n.size();
_printer.p("exit").pln();
}
/** Visit a GdbCommand = RestOfLine. */
public final void visitGdbCommand(final GNode n) {
_printer.p("gdb ").p(n.getString(0)).pln();
}
/** Visit a HelpCommand = (no children). */
public final void visitHelpCommand(final GNode n) {
assert 0 == n.size();
_printer.p("help").pln();
}
/** Visit a InfoBreakCommand = (no children). */
public final void visitInfoBreakCommand(final GNode n) {
assert 0 == n.size();
_printer.p("info break").pln();
}
/** Visit a InfoWatchCommand = (no children). */
public final void visitInfoWatchCommand(final GNode n) {
assert 0 == n.size();
_printer.p("info watch").pln();
}
/** Visit an InitJCommand = (no children). */
public final void visitInitJCommand(final GNode n) {
assert 0 == n.size();
_printer.p("initj").pln();
}
/** Visit a J2cCommand = (no children). */
public final void visitJ2cCommand(final GNode n) {
assert 0 == n.size();
_printer.p("j2c").pln();
}
/** Visit a JdbCommand = RestOfLine. */
public final void visitJdbCommand(final GNode n) {
_printer.p("jdb ").p(n.getString(0)).pln();
}
/** Visit a JRetCommand = (no children). */
public final void visitJRetCommand(final GNode n) {
assert 0 == n.size();
_printer.p("jret").pln();
}
/** Visit a ListCommand = (no children). */
public final void visitListCommand(final GNode n) {
assert 0 == n.size();
_printer.p("list").pln();
}
/** Visit a LocalsCommand = (no children). */
public final void visitLocalsCommand(final GNode n) {
assert 0 == n.size();
_printer.p("locals").pln();
}
/** Visit a NextCommand = (no children). */
public final void visitNextCommand(final GNode n) {
assert 0 == n.size();
_printer.p("next").pln();
}
/** Visit a RunCommand = (no children). */
public final void visitRunCommand(final GNode n) {
assert 0 == n.size();
_printer.p("run").pln();
}
/** Visit a PrintCExpressionCommand = C.Expression. */
public final void visitPrintCExpressionCommand(final GNode n) {
enterC(TransitionKind.SILENT);
_printer.p("print ").p(n.getNode(0)).pln();
exitC();
}
/** Visit a PrintJavaExpressionCommand = Java.Expression. */
public final void visitPrintJavaExpressionCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("print ").p(n.getNode(0)).pln();
exitJava();
}
/** Visit a StatCommand = (no children). */
public final void visitStatCommand(final GNode n) {
assert 0 == n.size();
_printer.p("stat").pln();
}
/** Visit a StepCommand = (no children). */
public final void visitStepCommand(final GNode n) {
assert 0 == n.size();
_printer.p("step").pln();
}
/** Visit a UpCommand = IntegerLiteral. */
public final void visitUpCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("up ").p(n.getNode(0)).pln();
exitJava();
}
/** Visit a WatchCExpressionCommand = C.Expression. */
public final void visitWatchCExpressionCommand(final GNode n) {
enterC(TransitionKind.SILENT);
_printer.p("watch ").p(n.getNode(0)).pln();
exitC();
}
/** Visit a WatchJavaFieldCommand = WatchKind? QualifiedIdentifier. */
public final void visitWatchJavaFieldCommand(final GNode n) {
enterJava(TransitionKind.SILENT);
_printer.p("watch ");
if (null != n.get(0))
_printer.p(n.getString(0)).p(' ');
_printer.p(n.getNode(1)).pln();
exitJava();
}
/** Visit a WhereCommand = (no children). */
public final void visitWhereCommand(final GNode n) {
assert 0 == n.size();
_printer.p("where").pln();
}
/** Visit a MetaVariable = Identifier. */
public final void visitMetaVariable(final GNode n) {
_printer.p('$').p(n.getString(0)).pln();
}
}