public class org.hibernate.hql.internal.ast.SqlGenerator extends org.hibernate.hql.internal.antlr.SqlGeneratorBase implements org.hibernate.hql.internal.ast.ErrorReporter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.internal.ast.SqlGenerator
  super_class: org.hibernate.hql.internal.antlr.SqlGeneratorBase
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static boolean REGRESSION_STYLE_CROSS_JOINS;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter writer;
    descriptor: Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.hql.internal.ast.ParseErrorHandler parseErrorHandler;
    descriptor: Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0002) ACC_PRIVATE

  private java.util.LinkedList<org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter> outputStack;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedList<Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;>;

  private java.util.List<org.hibernate.param.ParameterSpecification> collectedParameters;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/hibernate/param/ParameterSpecification;>;

  private int traceDepth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 45
            ldc Lorg/hibernate/hql/internal/ast/SqlGenerator;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.hql.internal.ast.SqlGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 47
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void traceIn(java.lang.String, antlr.collections.AST);
    descriptor: (Ljava/lang/String;Lantlr/collections/AST;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String ruleName
        start local 2 // antlr.collections.AST tree
         0: .line 70
            getstatic org.hibernate.hql.internal.ast.SqlGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifne 2
         1: .line 71
            return
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.inputState:Lantlr/TreeParserSharedInputState;
            getfield antlr.TreeParserSharedInputState.guessing:I
            ifle 4
         3: .line 74
            return
         4: .line 76
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 45
            aload 0 /* this */
            dup
            getfield org.hibernate.hql.internal.ast.SqlGenerator.traceDepth:I
            dup_x1
            iconst_1
            iadd
            putfield org.hibernate.hql.internal.ast.SqlGenerator.traceDepth:I
            iconst_2
            imul
            invokestatic org.hibernate.internal.util.StringHelper.repeat:(CI)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* prefix */
        start local 3 // java.lang.String prefix
         5: .line 77
            new java.lang.StringBuilder
            dup
            aload 1 /* ruleName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 2 /* tree */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.buildTraceNodeName:(Lantlr/collections/AST;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* traceText */
        start local 4 // java.lang.String traceText
         6: .line 78
            getstatic org.hibernate.hql.internal.ast.SqlGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            new java.lang.StringBuilder
            dup
            aload 3 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* traceText */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         7: .line 79
            return
        end local 4 // java.lang.String traceText
        end local 3 // java.lang.String prefix
        end local 2 // antlr.collections.AST tree
        end local 1 // java.lang.String ruleName
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    8     1   ruleName  Ljava/lang/String;
            0    8     2       tree  Lantlr/collections/AST;
            5    8     3     prefix  Ljava/lang/String;
            6    8     4  traceText  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      ruleName  
      tree      

  private java.lang.String buildTraceNodeName(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST tree
         0: .line 82
            aload 1 /* tree */
            ifnonnull 2
         1: .line 83
            ldc "???"
            goto 3
         2: .line 84
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* tree */
            invokeinterface antlr.collections.AST.getText:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.hibernate.hql.internal.ast.util.TokenPrinters.SQL_TOKEN_PRINTER:Lorg/hibernate/hql/internal/ast/util/ASTPrinter;
            aload 1 /* tree */
            invokeinterface antlr.collections.AST.getType:()I
            invokevirtual org.hibernate.hql.internal.ast.util.ASTPrinter.getTokenTypeName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 82
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // antlr.collections.AST tree
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    4     1  tree  Lantlr/collections/AST;
    MethodParameters:
      Name  Flags
      tree  

  public void traceOut(java.lang.String, antlr.collections.AST);
    descriptor: (Ljava/lang/String;Lantlr/collections/AST;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String ruleName
        start local 2 // antlr.collections.AST tree
         0: .line 89
            getstatic org.hibernate.hql.internal.ast.SqlGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifne 2
         1: .line 90
            return
         2: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.inputState:Lantlr/TreeParserSharedInputState;
            getfield antlr.TreeParserSharedInputState.guessing:I
            ifle 4
         3: .line 93
            return
         4: .line 95
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "<-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 45
            aload 0 /* this */
            dup
            getfield org.hibernate.hql.internal.ast.SqlGenerator.traceDepth:I
            iconst_1
            isub
            dup_x1
            putfield org.hibernate.hql.internal.ast.SqlGenerator.traceDepth:I
            iconst_2
            imul
            invokestatic org.hibernate.internal.util.StringHelper.repeat:(CI)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* prefix */
        start local 3 // java.lang.String prefix
         5: .line 96
            getstatic org.hibernate.hql.internal.ast.SqlGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            new java.lang.StringBuilder
            dup
            aload 3 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ruleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         6: .line 97
            return
        end local 3 // java.lang.String prefix
        end local 2 // antlr.collections.AST tree
        end local 1 // java.lang.String ruleName
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    7     1  ruleName  Ljava/lang/String;
            0    7     2      tree  Lantlr/collections/AST;
            5    7     3    prefix  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      ruleName  
      tree      

  public java.util.List<org.hibernate.param.ParameterSpecification> getCollectedParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 100
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.collectedParameters:Ljava/util/List;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
    Signature: ()Ljava/util/List<Lorg/hibernate/param/ParameterSpecification;>;

  protected void out(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String s
         0: .line 105
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.exprs:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 3
         1: .line 106
            aload 0 /* this */
            aload 1 /* s */
            invokespecial org.hibernate.hql.internal.antlr.SqlGeneratorBase.out:(Ljava/lang/String;)V
         2: .line 107
            goto 4
         3: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
            aload 1 /* s */
            invokeinterface org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter.clause:(Ljava/lang/String;)V
         4: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String s
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    5     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected void out(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST n
         0: .line 115
            aload 1 /* n */
            instanceof org.hibernate.hql.internal.ast.tree.Node
            ifeq 3
         1: .line 116
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.hibernate.hql.internal.ast.tree.Node
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.hql.internal.ast.tree.Node.getRenderText:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
         2: .line 117
            goto 4
         3: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* n */
            invokespecial org.hibernate.hql.internal.antlr.SqlGeneratorBase.out:(Lantlr/collections/AST;)V
         4: .line 122
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.hibernate.hql.internal.ast.tree.ParameterNode
            ifeq 7
         5: .line 123
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.collectedParameters:Ljava/util/List;
            aload 1 /* n */
            checkcast org.hibernate.hql.internal.ast.tree.ParameterNode
            invokevirtual org.hibernate.hql.internal.ast.tree.ParameterNode.getHqlParameterSpecification:()Lorg/hibernate/param/ParameterSpecification;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 124
            goto 12
         7: .line 125
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.hibernate.hql.internal.ast.tree.ParameterContainer
            ifeq 12
         8: .line 126
            aload 1 /* n */
            checkcast org.hibernate.hql.internal.ast.tree.ParameterContainer
            invokeinterface org.hibernate.hql.internal.ast.tree.ParameterContainer.hasEmbeddedParameters:()Z
            ifeq 12
         9: .line 127
            aload 1 /* n */
            checkcast org.hibernate.hql.internal.ast.tree.ParameterContainer
            invokeinterface org.hibernate.hql.internal.ast.tree.ParameterContainer.getEmbeddedParameters:()[Lorg/hibernate/param/ParameterSpecification;
            astore 2 /* specifications */
        start local 2 // org.hibernate.param.ParameterSpecification[] specifications
        10: .line 128
            aload 2 /* specifications */
            ifnull 12
        11: .line 129
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.collectedParameters:Ljava/util/List;
            aload 2 /* specifications */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 2 // org.hibernate.param.ParameterSpecification[] specifications
        12: .line 133
      StackMap locals:
      StackMap stack:
            return
        end local 1 // antlr.collections.AST n
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0   13     1               n  Lantlr/collections/AST;
           10   12     2  specifications  [Lorg/hibernate/param/ParameterSpecification;
    MethodParameters:
      Name  Flags
      n     

  protected void betweenFunctionArguments();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 137
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
            invokeinterface org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter.betweenFunctionArguments:()V
         1: .line 138
            return
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;

  public void reportError(antlr.RecognitionException);
    descriptor: (Lantlr/RecognitionException;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.RecognitionException e
         0: .line 142
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.parseErrorHandler:Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
            aload 1 /* e */
            invokeinterface org.hibernate.hql.internal.ast.ParseErrorHandler.reportError:(Lantlr/RecognitionException;)V
         1: .line 143
            return
        end local 1 // antlr.RecognitionException e
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    2     1     e  Lantlr/RecognitionException;
    MethodParameters:
      Name  Flags
      e     

  public void reportError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String s
         0: .line 147
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.parseErrorHandler:Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
            aload 1 /* s */
            invokeinterface org.hibernate.hql.internal.ast.ParseErrorHandler.reportError:(Ljava/lang/String;)V
         1: .line 148
            return
        end local 1 // java.lang.String s
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public void reportWarning(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String s
         0: .line 152
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.parseErrorHandler:Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
            aload 1 /* s */
            invokeinterface org.hibernate.hql.internal.ast.ParseErrorHandler.reportWarning:(Ljava/lang/String;)V
         1: .line 153
            return
        end local 1 // java.lang.String s
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public org.hibernate.hql.internal.ast.ParseErrorHandler getParseErrorHandler();
    descriptor: ()Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 156
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.parseErrorHandler:Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
         0: .line 160
            aload 0 /* this */
            invokespecial org.hibernate.hql.internal.antlr.SqlGeneratorBase.<init>:()V
         1: .line 56
            aload 0 /* this */
            new org.hibernate.hql.internal.ast.SqlGenerator$DefaultWriter
            dup
            aload 0 /* this */
            invokespecial org.hibernate.hql.internal.ast.SqlGenerator$DefaultWriter.<init>:(Lorg/hibernate/hql/internal/ast/SqlGenerator;)V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
         2: .line 60
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.outputStack:Ljava/util/LinkedList;
         3: .line 61
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.collectedParameters:Ljava/util/List;
         4: .line 161
            aload 0 /* this */
            new org.hibernate.hql.internal.ast.ErrorTracker
            dup
            invokespecial org.hibernate.hql.internal.ast.ErrorTracker.<init>:()V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.parseErrorHandler:Lorg/hibernate/hql/internal/ast/ParseErrorHandler;
         5: .line 162
            aload 0 /* this */
            aload 1 /* sfi */
            putfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 163
            return
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    7     1   sfi  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
      Name  Flags
      sfi   

  public java.lang.String getSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 166
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getStringBuilder:()Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;

  protected void optionalSpace();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 171
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getLastChar:()I
            istore 1 /* c */
        start local 1 // int c
         1: .line 172
            iload 1 /* c */
            lookupswitch { // 4
                   -1: 2
                   32: 3
                   40: 5
                   41: 4
              default: 6
          }
         2: .line 174
      StackMap locals: int
      StackMap stack:
            return
         3: .line 176
      StackMap locals:
      StackMap stack:
            return
         4: .line 178
      StackMap locals:
      StackMap stack:
            return
         5: .line 180
      StackMap locals:
      StackMap stack:
            return
         6: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc " "
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
         7: .line 184
            return
        end local 1 // int c
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            1    8     1     c  I

  protected void beginFunctionTemplate(antlr.collections.AST, antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST node
        start local 2 // antlr.collections.AST nameNode
         0: .line 190
            aload 1 /* node */
            checkcast org.hibernate.hql.internal.ast.tree.FunctionNode
            astore 3 /* functionNode */
        start local 3 // org.hibernate.hql.internal.ast.tree.FunctionNode functionNode
         1: .line 191
            aload 3 /* functionNode */
            invokeinterface org.hibernate.hql.internal.ast.tree.FunctionNode.getSQLFunction:()Lorg/hibernate/dialect/function/SQLFunction;
            astore 4 /* sqlFunction */
        start local 4 // org.hibernate.dialect.function.SQLFunction sqlFunction
         2: .line 192
            aload 4 /* sqlFunction */
            ifnonnull 5
         3: .line 194
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* nameNode */
            invokespecial org.hibernate.hql.internal.antlr.SqlGeneratorBase.beginFunctionTemplate:(Lantlr/collections/AST;Lantlr/collections/AST;)V
         4: .line 195
            goto 10
         5: .line 198
      StackMap locals: org.hibernate.hql.internal.ast.tree.FunctionNode org.hibernate.dialect.function.SQLFunction
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.outputStack:Ljava/util/LinkedList;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
            invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
         6: .line 199
            aload 1 /* node */
            invokeinterface antlr.collections.AST.getType:()I
            bipush 77
            if_icmpne 9
         7: .line 200
            aload 0 /* this */
            new org.hibernate.hql.internal.ast.SqlGenerator$CastFunctionArguments
            dup
            invokespecial org.hibernate.hql.internal.ast.SqlGenerator$CastFunctionArguments.<init>:()V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
         8: .line 201
            goto 10
         9: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.hibernate.hql.internal.ast.SqlGenerator$StandardFunctionArguments
            dup
            invokespecial org.hibernate.hql.internal.ast.SqlGenerator$StandardFunctionArguments.<init>:()V
            putfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
        10: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.hibernate.dialect.function.SQLFunction sqlFunction
        end local 3 // org.hibernate.hql.internal.ast.tree.FunctionNode functionNode
        end local 2 // antlr.collections.AST nameNode
        end local 1 // antlr.collections.AST node
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0   11     1          node  Lantlr/collections/AST;
            0   11     2      nameNode  Lantlr/collections/AST;
            1   11     3  functionNode  Lorg/hibernate/hql/internal/ast/tree/FunctionNode;
            2   11     4   sqlFunction  Lorg/hibernate/dialect/function/SQLFunction;
    MethodParameters:
          Name  Flags
      node      
      nameNode  

  protected void endFunctionTemplate(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST node
         0: .line 210
            aload 1 /* node */
            checkcast org.hibernate.hql.internal.ast.tree.FunctionNode
            astore 2 /* functionNode */
        start local 2 // org.hibernate.hql.internal.ast.tree.FunctionNode functionNode
         1: .line 211
            aload 2 /* functionNode */
            invokeinterface org.hibernate.hql.internal.ast.tree.FunctionNode.getSQLFunction:()Lorg/hibernate/dialect/function/SQLFunction;
            astore 3 /* sqlFunction */
        start local 3 // org.hibernate.dialect.function.SQLFunction sqlFunction
         2: .line 212
            aload 3 /* sqlFunction */
            ifnonnull 5
         3: .line 213
            aload 0 /* this */
            aload 1 /* node */
            invokespecial org.hibernate.hql.internal.antlr.SqlGeneratorBase.endFunctionTemplate:(Lantlr/collections/AST;)V
         4: .line 214
            goto 9
         5: .line 216
      StackMap locals: org.hibernate.hql.internal.ast.tree.FunctionNode org.hibernate.dialect.function.SQLFunction
      StackMap stack:
            aload 2 /* functionNode */
            invokeinterface org.hibernate.hql.internal.ast.tree.FunctionNode.getFirstArgumentType:()Lorg/hibernate/type/Type;
            astore 4 /* functionType */
        start local 4 // org.hibernate.type.Type functionType
         6: .line 218
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
            checkcast org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter
            astore 5 /* functionArguments */
        start local 5 // org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter functionArguments
         7: .line 219
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.outputStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter
            putfield org.hibernate.hql.internal.ast.SqlGenerator.writer:Lorg/hibernate/hql/internal/ast/SqlGenerator$SqlWriter;
         8: .line 220
            aload 0 /* this */
            aload 3 /* sqlFunction */
            aload 4 /* functionType */
            aload 5 /* functionArguments */
            invokeinterface org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter.getArgs:()Ljava/util/List;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.dialect.function.SQLFunction.render:(Lorg/hibernate/type/Type;Ljava/util/List;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
        end local 5 // org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter functionArguments
        end local 4 // org.hibernate.type.Type functionType
         9: .line 222
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.dialect.function.SQLFunction sqlFunction
        end local 2 // org.hibernate.hql.internal.ast.tree.FunctionNode functionNode
        end local 1 // antlr.collections.AST node
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0   10     1               node  Lantlr/collections/AST;
            1   10     2       functionNode  Lorg/hibernate/hql/internal/ast/tree/FunctionNode;
            2   10     3        sqlFunction  Lorg/hibernate/dialect/function/SQLFunction;
            6    9     4       functionType  Lorg/hibernate/type/Type;
            7    9     5  functionArguments  Lorg/hibernate/hql/internal/ast/SqlGenerator$FunctionArgumentsCollectingWriter;
    MethodParameters:
      Name  Flags
      node  

  public static void panic();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 329
            new org.hibernate.QueryException
            dup
            ldc "TreeWalker: panic"
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void fromFragmentSeparator(antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST a
         0: .line 335
            aload 1 /* a */
            invokeinterface antlr.collections.AST.getNextSibling:()Lantlr/collections/AST;
            astore 2 /* next */
        start local 2 // antlr.collections.AST next
         1: .line 336
            aload 2 /* next */
            ifnull 2
            aload 0 /* this */
            aload 1 /* a */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.hasText:(Lantlr/collections/AST;)Z
            ifne 3
         2: .line 337
      StackMap locals: antlr.collections.AST
      StackMap stack:
            return
         3: .line 340
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 3 /* left */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement left
         4: .line 341
            aload 2 /* next */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 4 /* right */
        start local 4 // org.hibernate.hql.internal.ast.tree.FromElement right
         5: .line 352
            goto 7
         6: .line 353
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getNextSibling:()Lantlr/collections/AST;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 4 /* right */
         7: .line 352
      StackMap locals:
      StackMap stack:
            aload 4 /* right */
            ifnull 8
            aload 0 /* this */
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.hasText:(Lantlr/collections/AST;)Z
            ifeq 6
         8: .line 355
      StackMap locals:
      StackMap stack:
            aload 4 /* right */
            ifnonnull 10
         9: .line 356
            return
        10: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.hasText:(Lantlr/collections/AST;)Z
            ifne 12
        11: .line 361
            return
        12: .line 364
      StackMap locals:
      StackMap stack:
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getType:()I
            sipush 140
            if_icmpne 15
        13: .line 365
            aload 0 /* this */
            ldc " "
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
        14: .line 366
            goto 23
        15: .line 367
      StackMap locals:
      StackMap stack:
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getRealOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 3 /* left */
            if_acmpeq 17
        16: .line 368
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getRealOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ifnull 22
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getRealOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 3 /* left */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getRealOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            if_acmpne 22
        17: .line 371
      StackMap locals:
      StackMap stack:
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            ifnull 20
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            invokevirtual org.hibernate.engine.internal.JoinSequence.isThetaStyle:()Z
            ifeq 20
        18: .line 372
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.writeCrossJoinSeparator:()V
        19: .line 373
            goto 23
        20: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc " "
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
        21: .line 377
            goto 23
        22: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.writeCrossJoinSeparator:()V
        23: .line 382
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.hibernate.hql.internal.ast.tree.FromElement right
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement left
        end local 2 // antlr.collections.AST next
        end local 1 // antlr.collections.AST a
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0   24     1      a  Lantlr/collections/AST;
            1   24     2   next  Lantlr/collections/AST;
            4   24     3   left  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            5   24     4  right  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
      Name  Flags
      a     

  private void writeCrossJoinSeparator();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
         0: .line 385
            getstatic org.hibernate.hql.internal.ast.SqlGenerator.REGRESSION_STYLE_CROSS_JOINS:Z
            ifeq 3
         1: .line 386
            aload 0 /* this */
            ldc ", "
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
         2: .line 387
            goto 4
         3: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            invokevirtual org.hibernate.dialect.Dialect.getCrossJoinSeparator:()Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
         4: .line 391
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/hql/internal/ast/SqlGenerator;

  protected void nestedFromFragment(antlr.collections.AST, antlr.collections.AST);
    descriptor: (Lantlr/collections/AST;Lantlr/collections/AST;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // antlr.collections.AST d
        start local 2 // antlr.collections.AST parent
         0: .line 397
            aload 1 /* d */
            ifnull 12
            aload 0 /* this */
            aload 1 /* d */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.hasText:(Lantlr/collections/AST;)Z
            ifeq 12
         1: .line 398
            aload 2 /* parent */
            ifnull 11
            aload 0 /* this */
            aload 2 /* parent */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.hasText:(Lantlr/collections/AST;)Z
            ifeq 11
         2: .line 400
            aload 2 /* parent */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 3 /* left */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement left
         3: .line 401
            aload 1 /* d */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 4 /* right */
        start local 4 // org.hibernate.hql.internal.ast.tree.FromElement right
         4: .line 402
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getRealOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 3 /* left */
            if_acmpne 10
         5: .line 404
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            ifnull 8
            aload 4 /* right */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            invokevirtual org.hibernate.engine.internal.JoinSequence.isThetaStyle:()Z
            ifeq 8
         6: .line 405
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.writeCrossJoinSeparator:()V
         7: .line 406
            goto 11
         8: .line 408
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 0 /* this */
            ldc " "
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Ljava/lang/String;)V
         9: .line 410
            goto 11
        10: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.writeCrossJoinSeparator:()V
        end local 4 // org.hibernate.hql.internal.ast.tree.FromElement right
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement left
        11: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* d */
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.out:(Lantlr/collections/AST;)V
        12: .line 419
      StackMap locals:
      StackMap stack:
            return
        end local 2 // antlr.collections.AST parent
        end local 1 // antlr.collections.AST d
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0   13     1       d  Lantlr/collections/AST;
            0   13     2  parent  Lantlr/collections/AST;
            3   11     3    left  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            4   11     4   right  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
        Name  Flags
      d       
      parent  

  protected java.lang.String renderOrderByElement(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
        start local 1 // java.lang.String expression
        start local 2 // java.lang.String order
        start local 3 // java.lang.String nulls
         0: .line 423
            aload 3 /* nulls */
         1: .line 424
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
         2: .line 425
            invokevirtual org.hibernate.cfg.Settings.getDefaultNullPrecedence:()Lorg/hibernate/NullPrecedence;
         3: .line 423
            invokestatic org.hibernate.NullPrecedence.parse:(Ljava/lang/String;Lorg/hibernate/NullPrecedence;)Lorg/hibernate/NullPrecedence;
            astore 4 /* nullPrecedence */
        start local 4 // org.hibernate.NullPrecedence nullPrecedence
         4: .line 427
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.SqlGenerator.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 1 /* expression */
            aconst_null
            aload 2 /* order */
            aload 4 /* nullPrecedence */
            invokevirtual org.hibernate.dialect.Dialect.renderOrderByElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/NullPrecedence;)Ljava/lang/String;
            areturn
        end local 4 // org.hibernate.NullPrecedence nullPrecedence
        end local 3 // java.lang.String nulls
        end local 2 // java.lang.String order
        end local 1 // java.lang.String expression
        end local 0 // org.hibernate.hql.internal.ast.SqlGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/hibernate/hql/internal/ast/SqlGenerator;
            0    5     1      expression  Ljava/lang/String;
            0    5     2           order  Ljava/lang/String;
            0    5     3           nulls  Ljava/lang/String;
            4    5     4  nullPrecedence  Lorg/hibernate/NullPrecedence;
    MethodParameters:
            Name  Flags
      expression  
      order       
      nulls       

  static java.lang.StringBuilder access$0(org.hibernate.hql.internal.ast.SqlGenerator);
    descriptor: (Lorg/hibernate/hql/internal/ast/SqlGenerator;)Ljava/lang/StringBuilder;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.hibernate.hql.internal.ast.SqlGenerator.getStringBuilder:()Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SqlGenerator.java"
NestMembers:
  org.hibernate.hql.internal.ast.SqlGenerator$CastFunctionArguments  org.hibernate.hql.internal.ast.SqlGenerator$DefaultWriter  org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter  org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter  org.hibernate.hql.internal.ast.SqlGenerator$StandardFunctionArguments
InnerClasses:
  CastFunctionArguments = org.hibernate.hql.internal.ast.SqlGenerator$CastFunctionArguments of org.hibernate.hql.internal.ast.SqlGenerator
  DefaultWriter = org.hibernate.hql.internal.ast.SqlGenerator$DefaultWriter of org.hibernate.hql.internal.ast.SqlGenerator
  abstract FunctionArgumentsCollectingWriter = org.hibernate.hql.internal.ast.SqlGenerator$FunctionArgumentsCollectingWriter of org.hibernate.hql.internal.ast.SqlGenerator
  abstract SqlWriter = org.hibernate.hql.internal.ast.SqlGenerator$SqlWriter of org.hibernate.hql.internal.ast.SqlGenerator
  StandardFunctionArguments = org.hibernate.hql.internal.ast.SqlGenerator$StandardFunctionArguments of org.hibernate.hql.internal.ast.SqlGenerator