Class AstWriter


  • public class AstWriter
    extends java.lang.Object
    Context for writing an AST out as a string.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.StringBuilder b  
    • Constructor Summary

      Constructors 
      Constructor Description
      AstWriter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      AstWriter append​(java.lang.String s)
      Appends a string to the output.
      AstWriter append​(AstNode node, int left, int right)
      Appends a parse tree node.
      AstWriter appendAll​(java.lang.Iterable<? extends AstNode> nodes, int left, Op op, int right)
      Appends a list of parse tree nodes.
      AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list, java.lang.String sep)
      Appends a list of parse tree nodes separated by sep.
      AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list, java.lang.String start, java.lang.String sep, java.lang.String end)
      Appends a list of parse tree nodes separated by sep, and also with prefix and suffix: start node0 sep node1 ... sep nodeN end.
      AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list, java.lang.String start, java.lang.String sep, java.lang.String end, java.lang.String empty)
      Appends a list of parse tree nodes separated by sep, and also with prefix and suffix: start node0 sep node1 ... sep nodeN end.
      AstWriter binary​(java.lang.String left, AstNode a0, java.lang.String mid, AstNode a1, int right)
      Appends a call to a binary operator (e.g.
      AstWriter binary​(java.lang.String left, AstNode a0, java.lang.String mid, AstNode a1, java.lang.String right)
      Appends a call to a binary operator (e.g.
      AstWriter infix​(int left, AstNode a0, Op op, AstNode a1, int right)
      Appends a call to an infix operator.
      AstWriter prefix​(int left, Op op, AstNode a, int right)
      Appends a call to an prefix operator.
      java.lang.String toString()
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • b

        private final java.lang.StringBuilder b
    • Constructor Detail

      • AstWriter

        public AstWriter()
    • Method Detail

      • toString

        public java.lang.String toString()

        Returns the ML source code generated by this writer.

        Overrides:
        toString in class java.lang.Object
      • append

        public AstWriter append​(java.lang.String s)
        Appends a string to the output.
      • infix

        public AstWriter infix​(int left,
                               AstNode a0,
                               Op op,
                               AstNode a1,
                               int right)
        Appends a call to an infix operator.
      • prefix

        public AstWriter prefix​(int left,
                                Op op,
                                AstNode a,
                                int right)
        Appends a call to an prefix operator.
      • binary

        public AstWriter binary​(java.lang.String left,
                                AstNode a0,
                                java.lang.String mid,
                                AstNode a1,
                                int right)
        Appends a call to a binary operator (e.g. "val ... = ...").
      • binary

        public AstWriter binary​(java.lang.String left,
                                AstNode a0,
                                java.lang.String mid,
                                AstNode a1,
                                java.lang.String right)
        Appends a call to a binary operator (e.g. "let ... in ... end").
      • append

        public AstWriter append​(AstNode node,
                                int left,
                                int right)
        Appends a parse tree node.
      • appendAll

        public AstWriter appendAll​(java.lang.Iterable<? extends AstNode> nodes,
                                   int left,
                                   Op op,
                                   int right)
        Appends a list of parse tree nodes.
      • appendAll

        public AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list,
                                   java.lang.String sep)
        Appends a list of parse tree nodes separated by sep.
      • appendAll

        public AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list,
                                   java.lang.String start,
                                   java.lang.String sep,
                                   java.lang.String end)
        Appends a list of parse tree nodes separated by sep, and also with prefix and suffix: start node0 sep node1 ... sep nodeN end.
      • appendAll

        public AstWriter appendAll​(java.lang.Iterable<? extends AstNode> list,
                                   java.lang.String start,
                                   java.lang.String sep,
                                   java.lang.String end,
                                   java.lang.String empty)
        Appends a list of parse tree nodes separated by sep, and also with prefix and suffix: start node0 sep node1 ... sep nodeN end.