+- Input[@CanonicalImage = null, @ExcludedLinesCount = 0, @ExcludedRangesCount = 0]
   +- Global[@CanonicalImage = null]
   |  +- ProgramUnit[@CanonicalImage = null, @MethodName = "assert_eq", @Name = "assert_eq", @ObjectName = null]
   |     +- MethodDeclarator[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @ParameterCount = 1]
   |     |  +- ObjectNameDeclaration[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |  |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |  +- FormalParameters[@CanonicalImage = "(TACTUAL,TEXPECTED)", @Image = "(tActual,tExpected)"]
   |     |     +- FormalParameter[@CanonicalImage = "TACTUAL", @Image = "tActual", @In = true, @NoCopy = false, @Out = false]
   |     |     |  +- ID[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |     |  +- Datatype[@CanonicalImage = "VARCHAR2", @Image = "VARCHAR2", @TypeImage = "VARCHAR2"]
   |     |     |     +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2", @Image = "VARCHAR2"]
   |     |     +- FormalParameter[@CanonicalImage = "TEXPECTED", @Image = "tExpected", @In = true, @NoCopy = false, @Out = false]
   |     |        +- ID[@CanonicalImage = "TEXPECTED", @Image = "tExpected"]
   |     |        +- Datatype[@CanonicalImage = "VARCHAR2", @Image = "VARCHAR2", @TypeImage = "VARCHAR2"]
   |     |           +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2", @Image = "VARCHAR2"]
   |     +- DeclarativeSection[@CanonicalImage = null]
   |     |  +- DeclarativeUnit[@CanonicalImage = null]
   |     |     +- VariableOrConstantDeclaration[@CanonicalImage = null]
   |     |        +- VariableOrConstantDeclarator[@CanonicalImage = "TEXPECTEDREPLACED VARCHAR2(4000) := REPLACE", @Image = "tExpectedReplaced VARCHAR2(4000) := replace"]
   |     |           +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |           |  +- ID[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |           +- Datatype[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)", @TypeImage = "VARCHAR2(4000)"]
   |     |           |  +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)"]
   |     |           |     +- NumericLiteral[@CanonicalImage = "4000", @Image = "4000"]
   |     |           +- VariableOrConstantInitializer[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |              +- Expression[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |                 +- PrimaryPrefix[@CanonicalImage = "REPLACE", @Image = "replace", @SelfModifier = false]
   |     |                    +- FunctionCall[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |                       +- FunctionName[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |                       |  +- ID[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |                       +- Arguments[@ArgumentCount = 3, @CanonicalImage = null]
   |     |                          +- ArgumentList[@CanonicalImage = null]
   |     |                             +- Argument[@CanonicalImage = null]
   |     |                             |  +- Expression[@CanonicalImage = "TEXPECTED", @Image = "tExpected"]
   |     |                             |     +- PrimaryPrefix[@CanonicalImage = "TEXPECTED", @Image = "tExpected", @SelfModifier = false]
   |     |                             |        +- SimpleExpression[@CanonicalImage = "TEXPECTED", @Image = "tExpected"]
   |     |                             |           +- Column[@CanonicalImage = "TEXPECTED", @Image = "tExpected"]
   |     |                             |              +- ID[@CanonicalImage = "TEXPECTED", @Image = "tExpected"]
   |     |                             +- Argument[@CanonicalImage = null]
   |     |                             |  +- Expression[@CanonicalImage = "\'<USER>\'", @Image = "\'<USER>\'"]
   |     |                             |     +- PrimaryPrefix[@CanonicalImage = "\'<USER>\'", @Image = "\'<USER>\'", @SelfModifier = false]
   |     |                             |        +- Literal[@CanonicalImage = "\'<USER>\'", @Image = "\'<USER>\'"]
   |     |                             |           +- StringLiteral[@CanonicalImage = "\'<USER>\'", @Image = "\'<USER>\'", @String = "<USER>"]
   |     |                             +- Argument[@CanonicalImage = null]
   |     |                                +- Expression[@CanonicalImage = "USER", @Image = "user"]
   |     |                                   +- PrimaryPrefix[@CanonicalImage = "USER", @Image = "user", @SelfModifier = false]
   |     |                                      +- SimpleExpression[@CanonicalImage = "USER", @Image = "user"]
   |     |                                         +- Column[@CanonicalImage = "USER", @Image = "user"]
   |     |                                            +- ID[@CanonicalImage = "USER", @Image = "user"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- IfStatement[@CanonicalImage = null, @Else = false]
   |     |        +- Expression[@CanonicalImage = "TACTUAL = TEXPECTEDREPLACED OR TACTUAL IS NULL AND TEXPECTEDREPLACED IS NULL", @Image = "tActual = tExpectedReplaced OR tActual IS NULL AND tExpectedReplaced IS NULL"]
   |     |        |  +- ConditionalOrExpression[@CanonicalImage = "TACTUAL = TEXPECTEDREPLACED OR TACTUAL IS NULL AND TEXPECTEDREPLACED IS NULL", @Image = "tActual = tExpectedReplaced OR tActual IS NULL AND tExpectedReplaced IS NULL"]
   |     |        |     +- EqualityExpression[@CanonicalImage = "TACTUAL = TEXPECTEDREPLACED", @Image = "tActual = tExpectedReplaced"]
   |     |        |     |  +- PrimaryPrefix[@CanonicalImage = "TACTUAL", @Image = "tActual", @SelfModifier = false]
   |     |        |     |  |  +- SimpleExpression[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |     |  |     +- Column[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |     |  |        +- ID[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |     |  +- PrimaryPrefix[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced", @SelfModifier = false]
   |     |        |     |     +- SimpleExpression[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        |     |        +- Column[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        |     |           +- ID[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        |     +- ConditionalAndExpression[@CanonicalImage = "TACTUAL IS NULL AND TEXPECTEDREPLACED IS NULL", @Image = "tActual IS NULL AND tExpectedReplaced IS NULL"]
   |     |        |        +- IsNullCondition[@CanonicalImage = "TACTUAL IS NULL", @Image = "tActual IS NULL"]
   |     |        |        |  +- PrimaryPrefix[@CanonicalImage = "TACTUAL", @Image = "tActual", @SelfModifier = false]
   |     |        |        |     +- SimpleExpression[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |        |        +- Column[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |        |           +- ID[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |     |        |        +- IsNullCondition[@CanonicalImage = "TEXPECTEDREPLACED IS NULL", @Image = "tExpectedReplaced IS NULL"]
   |     |        |           +- PrimaryPrefix[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced", @SelfModifier = false]
   |     |        |              +- SimpleExpression[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        |                 +- Column[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        |                    +- ID[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |     |        +- Statement[@CanonicalImage = null]
   |     |           +- UnlabelledStatement[@CanonicalImage = null]
   |     |              +- ReturnStatement[@CanonicalImage = null]
   |     +- Statement[@CanonicalImage = null]
   |        +- UnlabelledStatement[@CanonicalImage = null]
   |           +- Expression[@CanonicalImage = "RAISE_APPLICATION_ERROR", @Image = "raise_application_error"]
   |              +- PrimaryPrefix[@CanonicalImage = "RAISE_APPLICATION_ERROR", @Image = "raise_application_error", @SelfModifier = false]
   |                 +- FunctionCall[@CanonicalImage = "RAISE_APPLICATION_ERROR", @Image = "raise_application_error"]
   |                    +- FunctionName[@CanonicalImage = "RAISE_APPLICATION_ERROR", @Image = "raise_application_error"]
   |                    |  +- ID[@CanonicalImage = "RAISE_APPLICATION_ERROR", @Image = "raise_application_error"]
   |                    +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |                       +- ArgumentList[@CanonicalImage = null]
   |                          +- Argument[@CanonicalImage = null]
   |                          |  +- Expression[@CanonicalImage = "-20001", @Image = " -20001"]
   |                          |     +- PrimaryPrefix[@CanonicalImage = "20001", @Image = "20001", @SelfModifier = false]
   |                          |        +- Literal[@CanonicalImage = "20001", @Image = "20001"]
   |                          |           +- NumericLiteral[@CanonicalImage = "20001", @Image = "20001"]
   |                          +- Argument[@CanonicalImage = null]
   |                             +- Expression[@CanonicalImage = "\'ASSERTION FAILED: \' || CHR || TACTUAL || CHR || TEXPECTEDREPLACED", @Image = "\'assertion failed: \' || chr || tActual || chr || tExpectedReplaced"]
   |                                +- AdditiveExpression[@CanonicalImage = "\'ASSERTION FAILED: \' || CHR || TACTUAL || CHR || TEXPECTEDREPLACED", @Image = "\'assertion failed: \' || chr || tActual || chr || tExpectedReplaced"]
   |                                   +- PrimaryPrefix[@CanonicalImage = "\'ASSERTION FAILED: \'", @Image = "\'assertion failed: \'", @SelfModifier = false]
   |                                   |  +- Literal[@CanonicalImage = "\'ASSERTION FAILED: \'", @Image = "\'assertion failed: \'"]
   |                                   |     +- StringLiteral[@CanonicalImage = "\'ASSERTION FAILED: \'", @Image = "\'assertion failed: \'", @String = "assertion failed: "]
   |                                   +- PrimaryPrefix[@CanonicalImage = "CHR", @Image = "chr", @SelfModifier = false]
   |                                   |  +- FunctionCall[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     +- FunctionName[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     |  +- ID[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |                                   |        +- ArgumentList[@CanonicalImage = null]
   |                                   |           +- Argument[@CanonicalImage = null]
   |                                   |              +- Expression[@CanonicalImage = "10", @Image = "10"]
   |                                   |                 +- PrimaryPrefix[@CanonicalImage = "10", @Image = "10", @SelfModifier = false]
   |                                   |                    +- Literal[@CanonicalImage = "10", @Image = "10"]
   |                                   |                       +- NumericLiteral[@CanonicalImage = "10", @Image = "10"]
   |                                   +- PrimaryPrefix[@CanonicalImage = "TACTUAL", @Image = "tActual", @SelfModifier = false]
   |                                   |  +- SimpleExpression[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |                                   |     +- Column[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |                                   |        +- ID[@CanonicalImage = "TACTUAL", @Image = "tActual"]
   |                                   +- PrimaryPrefix[@CanonicalImage = "CHR", @Image = "chr", @SelfModifier = false]
   |                                   |  +- FunctionCall[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     +- FunctionName[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     |  +- ID[@CanonicalImage = "CHR", @Image = "chr"]
   |                                   |     +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |                                   |        +- ArgumentList[@CanonicalImage = null]
   |                                   |           +- Argument[@CanonicalImage = null]
   |                                   |              +- Expression[@CanonicalImage = "10", @Image = "10"]
   |                                   |                 +- PrimaryPrefix[@CanonicalImage = "10", @Image = "10", @SelfModifier = false]
   |                                   |                    +- Literal[@CanonicalImage = "10", @Image = "10"]
   |                                   |                       +- NumericLiteral[@CanonicalImage = "10", @Image = "10"]
   |                                   +- PrimaryPrefix[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced", @SelfModifier = false]
   |                                      +- SimpleExpression[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |                                         +- Column[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   |                                            +- ID[@CanonicalImage = "TEXPECTEDREPLACED", @Image = "tExpectedReplaced"]
   +- Global[@CanonicalImage = null]
   |  +- Block[@CanonicalImage = null]
   |     +- DeclarativeSection[@CanonicalImage = null]
   |     |  +- DeclarativeUnit[@CanonicalImage = null]
   |     |  |  +- VariableOrConstantDeclaration[@CanonicalImage = null]
   |     |  |     +- VariableOrConstantDeclarator[@CanonicalImage = "TDEPARTMENTS STR_TABLE", @Image = "tDepartments str_table"]
   |     |  |        +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |  |        |  +- ID[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |  |        +- Datatype[@CanonicalImage = "STR_TABLE", @Image = "str_table", @TypeImage = "str_table"]
   |     |  |           +- QualifiedName[@CanonicalImage = "STR_TABLE", @Image = "str_table"]
   |     |  |              +- UnqualifiedID[@CanonicalImage = "STR_TABLE", @Image = "str_table"]
   |     |  +- DeclarativeUnit[@CanonicalImage = null]
   |     |     +- VariableOrConstantDeclaration[@CanonicalImage = null]
   |     |        +- VariableOrConstantDeclarator[@CanonicalImage = "TNAMES STR_TABLE", @Image = "tNames str_table"]
   |     |           +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |           |  +- ID[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |           +- Datatype[@CanonicalImage = "STR_TABLE", @Image = "str_table", @TypeImage = "str_table"]
   |     |              +- QualifiedName[@CanonicalImage = "STR_TABLE", @Image = "str_table"]
   |     |                 +- UnqualifiedID[@CanonicalImage = "STR_TABLE", @Image = "str_table"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        +- WithClause[@CanonicalImage = null]
   |     |        |  +- Name[@CanonicalImage = "EMPLOYEES", @Image = "EMPLOYEES"]
   |     |        |  |  +- UnqualifiedID[@CanonicalImage = "EMPLOYEES", @Image = "EMPLOYEES"]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @String = "Sales"]
   |     |        |  |  |  +- ColumnAlias[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  |  |  |  +- ID[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'", @String = "John"]
   |     |        |  |  |  +- ColumnAlias[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |  |  |  +- ID[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'BUTLER\'", @Image = "\'Butler\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'BUTLER\'", @Image = "\'Butler\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'BUTLER\'", @Image = "\'Butler\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'BUTLER\'", @Image = "\'Butler\'", @String = "Butler"]
   |     |        |  |  |  +- ColumnAlias[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |  |     +- ID[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @String = "Sales"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'JOHN\'", @Image = "\'John\'", @String = "John"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'"]
   |     |        |  |  |     +- PrimaryPrefix[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'", @SelfModifier = false]
   |     |        |  |  |        +- Literal[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'"]
   |     |        |  |  |           +- StringLiteral[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'", @String = "Kelly"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @String = "Sales"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'JANE\'", @Image = "\'Jane\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'JANE\'", @Image = "\'Jane\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'JANE\'", @Image = "\'Jane\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'JANE\'", @Image = "\'Jane\'", @String = "Jane"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'"]
   |     |        |  |  |     +- PrimaryPrefix[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'", @SelfModifier = false]
   |     |        |  |  |        +- Literal[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'"]
   |     |        |  |  |           +- StringLiteral[@CanonicalImage = "\'KELLY\'", @Image = "\'Kelly\'", @String = "Kelly"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @String = "Devs"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'", @String = "Ruth"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'OSTIN\'", @Image = "\'Ostin\'"]
   |     |        |  |  |     +- PrimaryPrefix[@CanonicalImage = "\'OSTIN\'", @Image = "\'Ostin\'", @SelfModifier = false]
   |     |        |  |  |        +- Literal[@CanonicalImage = "\'OSTIN\'", @Image = "\'Ostin\'"]
   |     |        |  |  |           +- StringLiteral[@CanonicalImage = "\'OSTIN\'", @Image = "\'Ostin\'", @String = "Ostin"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @String = "Devs"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'GARETH\'", @Image = "\'Gareth\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'GARETH\'", @Image = "\'Gareth\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'GARETH\'", @Image = "\'Gareth\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'GARETH\'", @Image = "\'Gareth\'", @String = "Gareth"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'PINK\'", @Image = "\'Pink\'"]
   |     |        |  |  |     +- PrimaryPrefix[@CanonicalImage = "\'PINK\'", @Image = "\'Pink\'", @SelfModifier = false]
   |     |        |  |  |        +- Literal[@CanonicalImage = "\'PINK\'", @Image = "\'Pink\'"]
   |     |        |  |  |           +- StringLiteral[@CanonicalImage = "\'PINK\'", @Image = "\'Pink\'", @String = "Pink"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |  |  +- SelectList[@CanonicalImage = null]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @String = "Devs"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'CLI\'\'IGAN\'", @Image = "\'Cli\'\'igan\'"]
   |     |        |  |  |  |  +- PrimaryPrefix[@CanonicalImage = "\'CLI\'\'IGAN\'", @Image = "\'Cli\'\'igan\'", @SelfModifier = false]
   |     |        |  |  |  |     +- Literal[@CanonicalImage = "\'CLI\'\'IGAN\'", @Image = "\'Cli\'\'igan\'"]
   |     |        |  |  |  |        +- StringLiteral[@CanonicalImage = "\'CLI\'\'IGAN\'", @Image = "\'Cli\'\'igan\'", @String = "Cli\'\'igan"]
   |     |        |  |  |  +- SqlExpression[@CanonicalImage = "\'MOORNEY\'", @Image = "\'Moorney\'"]
   |     |        |  |  |     +- PrimaryPrefix[@CanonicalImage = "\'MOORNEY\'", @Image = "\'Moorney\'", @SelfModifier = false]
   |     |        |  |  |        +- Literal[@CanonicalImage = "\'MOORNEY\'", @Image = "\'Moorney\'"]
   |     |        |  |  |           +- StringLiteral[@CanonicalImage = "\'MOORNEY\'", @Image = "\'Moorney\'", @String = "Moorney"]
   |     |        |  |  +- FromClause[@CanonicalImage = null]
   |     |        |  |     +- TableReference[@CanonicalImage = null]
   |     |        |  |        +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  |           +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |  +- SubqueryOperation[@All = true, @CanonicalImage = "UNION ALL", @Image = "UNION ALL", @Intersect = false, @Minus = false, @Union = true]
   |     |        |  +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
   |     |        |     +- SelectList[@CanonicalImage = null]
   |     |        |     |  +- SqlExpression[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |     |  |  +- PrimaryPrefix[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @SelfModifier = false]
   |     |        |     |  |     +- Literal[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |        |     |  |        +- StringLiteral[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @String = "Devs"]
   |     |        |     |  +- SqlExpression[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'"]
   |     |        |     |  |  +- PrimaryPrefix[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'", @SelfModifier = false]
   |     |        |     |  |     +- Literal[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'"]
   |     |        |     |  |        +- StringLiteral[@CanonicalImage = "\'RUTH\'", @Image = "\'Ruth\'", @String = "Ruth"]
   |     |        |     |  +- SqlExpression[@CanonicalImage = "\'ZACK\'", @Image = "\'Zack\'"]
   |     |        |     |     +- PrimaryPrefix[@CanonicalImage = "\'ZACK\'", @Image = "\'Zack\'", @SelfModifier = false]
   |     |        |     |        +- Literal[@CanonicalImage = "\'ZACK\'", @Image = "\'Zack\'"]
   |     |        |     |           +- StringLiteral[@CanonicalImage = "\'ZACK\'", @Image = "\'Zack\'", @String = "Zack"]
   |     |        |     +- FromClause[@CanonicalImage = null]
   |     |        |        +- TableReference[@CanonicalImage = null]
   |     |        |           +- TableName[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        |              +- ID[@CanonicalImage = "DUAL", @Image = "dual"]
   |     |        +- SelectList[@CanonicalImage = null]
   |     |        |  +- SqlExpression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  |  +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT", @SelfModifier = false]
   |     |        |  |     +- SimpleExpression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  |        +- Column[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  |           +- ID[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |  +- SqlExpression[@CanonicalImage = "DBMS_XMLGEN.CONVERT", @Image = "dbms_xmlgen.convert"]
   |     |        |  |  +- PrimaryPrefix[@CanonicalImage = "DBMS_XMLGEN.CONVERT", @Image = "dbms_xmlgen.convert", @SelfModifier = false]
   |     |        |  |     +- FunctionCall[@CanonicalImage = "DBMS_XMLGEN.CONVERT", @Image = "dbms_xmlgen.convert"]
   |     |        |  |        +- FunctionName[@CanonicalImage = "DBMS_XMLGEN.CONVERT", @Image = "dbms_xmlgen.convert"]
   |     |        |  |        |  +- ID[@CanonicalImage = "DBMS_XMLGEN", @Image = "dbms_xmlgen"]
   |     |        |  |        |  +- ID[@CanonicalImage = "CONVERT", @Image = "convert"]
   |     |        |  |        +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |        |  |           +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              +- Argument[@CanonicalImage = null]
   |     |        |  |              |  +- Expression[@CanonicalImage = "SUBSTR", @Image = "substr"]
   |     |        |  |              |     +- PrimaryPrefix[@CanonicalImage = "SUBSTR", @Image = "substr", @SelfModifier = false]
   |     |        |  |              |        +- FunctionCall[@CanonicalImage = "SUBSTR", @Image = "substr"]
   |     |        |  |              |           +- FunctionName[@CanonicalImage = "SUBSTR", @Image = "substr"]
   |     |        |  |              |           |  +- ID[@CanonicalImage = "SUBSTR", @Image = "substr"]
   |     |        |  |              |           +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |        |  |              |              +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |  +- Expression[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |     +- PrimaryPrefix[@CanonicalImage = "REPLACE", @Image = "replace", @SelfModifier = false]
   |     |        |  |              |                 |        +- FunctionCall[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |           +- FunctionName[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |           |  +- ID[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |           +- Arguments[@ArgumentCount = 3, @CanonicalImage = null]
   |     |        |  |              |                 |              +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              |                 |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |  +- Expression[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |                 |     +- PrimaryPrefix[@CanonicalImage = "REPLACE", @Image = "replace", @SelfModifier = false]
   |     |        |  |              |                 |                 |        +- FunctionCall[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |                 |           +- FunctionName[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |                 |           |  +- ID[@CanonicalImage = "REPLACE", @Image = "replace"]
   |     |        |  |              |                 |                 |           +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |        |  |              |                 |                 |              +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |  +- Expression[@CanonicalImage = "P_UTILS.DISTINGUISHXML.GETSTRINGVALARGUMENTS", @Image = "p_utils.distinguishXML.getStringValArguments"]
   |     |        |  |              |                 |                 |                 |     +- PrimaryExpression[@CanonicalImage = "P_UTILS.DISTINGUISHXML.GETSTRINGVALARGUMENTS", @Image = "p_utils.distinguishXML.getStringValArguments"]
   |     |        |  |              |                 |                 |                 |        +- PrimaryPrefix[@CanonicalImage = "P_UTILS.DISTINGUISHXML", @Image = "p_utils.distinguishXML", @SelfModifier = false]
   |     |        |  |              |                 |                 |                 |        |  +- FunctionCall[@CanonicalImage = "P_UTILS.DISTINGUISHXML", @Image = "p_utils.distinguishXML"]
   |     |        |  |              |                 |                 |                 |        |     +- FunctionName[@CanonicalImage = "P_UTILS.DISTINGUISHXML", @Image = "p_utils.distinguishXML"]
   |     |        |  |              |                 |                 |                 |        |     |  +- ID[@CanonicalImage = "P_UTILS", @Image = "p_utils"]
   |     |        |  |              |                 |                 |                 |        |     |  +- ID[@CanonicalImage = "DISTINGUISHXML", @Image = "distinguishXML"]
   |     |        |  |              |                 |                 |                 |        |     +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |        +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |           +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |              +- Expression[@CanonicalImage = "XMLAGG", @Image = "XMLAgg"]
   |     |        |  |              |                 |                 |                 |        |                 +- PrimaryPrefix[@CanonicalImage = "XMLAGG", @Image = "XMLAgg", @SelfModifier = false]
   |     |        |  |              |                 |                 |                 |        |                    +- FunctionCall[@CanonicalImage = "XMLAGG", @Image = "XMLAgg"]
   |     |        |  |              |                 |                 |                 |        |                       +- FunctionName[@CanonicalImage = "XMLAGG", @Image = "XMLAgg"]
   |     |        |  |              |                 |                 |                 |        |                       |  +- ID[@CanonicalImage = "XMLAGG", @Image = "XMLAgg"]
   |     |        |  |              |                 |                 |                 |        |                       +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |                          +- ArgumentList[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |                          |  +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |                          |     +- Expression[@CanonicalImage = "XMLELEMENT", @Image = "XMLElement"]
   |     |        |  |              |                 |                 |                 |        |                          |        +- PrimaryPrefix[@CanonicalImage = "XMLELEMENT", @Image = "XMLElement", @SelfModifier = false]
   |     |        |  |              |                 |                 |                 |        |                          |           +- FunctionCall[@CanonicalImage = "XMLELEMENT", @Image = "XMLElement"]
   |     |        |  |              |                 |                 |                 |        |                          |              +- FunctionName[@CanonicalImage = "XMLELEMENT", @Image = "XMLElement"]
   |     |        |  |              |                 |                 |                 |        |                          |              |  +- ID[@CanonicalImage = "XMLELEMENT", @Image = "XMLElement"]
   |     |        |  |              |                 |                 |                 |        |                          |              +- XMLElement[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |                          |                 +- ID[@CanonicalImage = "\"elem\"", @Image = "\"elem\""]
   |     |        |  |              |                 |                 |                 |        |                          |                 +- Expression[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |              |                 |                 |                 |        |                          |                    +- PrimaryPrefix[@CanonicalImage = "NAME", @Image = "NAME", @SelfModifier = false]
   |     |        |  |              |                 |                 |                 |        |                          |                       +- SimpleExpression[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |              |                 |                 |                 |        |                          |                          +- Column[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |              |                 |                 |                 |        |                          |                             +- ID[@CanonicalImage = "NAME", @Image = "NAME"]
   |     |        |  |              |                 |                 |                 |        |                          +- OrderByClause[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                 |        |                             +- SqlExpression[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |              |                 |                 |                 |        |                                +- PrimaryPrefix[@CanonicalImage = "SURNAME", @Image = "SURNAME", @SelfModifier = false]
   |     |        |  |              |                 |                 |                 |        |                                   +- SimpleExpression[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |              |                 |                 |                 |        |                                      +- Column[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |              |                 |                 |                 |        |                                         +- ID[@CanonicalImage = "SURNAME", @Image = "SURNAME"]
   |     |        |  |              |                 |                 |                 |        +- PrimarySuffix[@ArgumentCount = -1, @Arguments = false, @ArrayDereference = false, @CanonicalImage = ".GETSTRINGVAL", @Image = ".getStringVal"]
   |     |        |  |              |                 |                 |                 |        |  +- QualifiedID[@CanonicalImage = "GETSTRINGVAL", @Image = "getStringVal"]
   |     |        |  |              |                 |                 |                 |        +- PrimarySuffix[@ArgumentCount = -1, @Arguments = false, @ArrayDereference = false, @CanonicalImage = "ARGUMENTS", @Image = "Arguments"]
   |     |        |  |              |                 |                 |                 |           +- Arguments[@ArgumentCount = 0, @CanonicalImage = null]
   |     |        |  |              |                 |                 |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |                    +- Expression[@CanonicalImage = "\'</ELEM>\'", @Image = "\'</elem>\'"]
   |     |        |  |              |                 |                 |                       +- PrimaryPrefix[@CanonicalImage = "\'</ELEM>\'", @Image = "\'</elem>\'", @SelfModifier = false]
   |     |        |  |              |                 |                 |                          +- Literal[@CanonicalImage = "\'</ELEM>\'", @Image = "\'</elem>\'"]
   |     |        |  |              |                 |                 |                             +- StringLiteral[@CanonicalImage = "\'</ELEM>\'", @Image = "\'</elem>\'", @String = "</elem>"]
   |     |        |  |              |                 |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                 |  +- Expression[@CanonicalImage = "\'<ELEM>\'", @Image = "\'<elem>\'"]
   |     |        |  |              |                 |                 |     +- PrimaryPrefix[@CanonicalImage = "\'<ELEM>\'", @Image = "\'<elem>\'", @SelfModifier = false]
   |     |        |  |              |                 |                 |        +- Literal[@CanonicalImage = "\'<ELEM>\'", @Image = "\'<elem>\'"]
   |     |        |  |              |                 |                 |           +- StringLiteral[@CanonicalImage = "\'<ELEM>\'", @Image = "\'<elem>\'", @String = "<elem>"]
   |     |        |  |              |                 |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                 |                    +- Expression[@CanonicalImage = "\', \'", @Image = "\', \'"]
   |     |        |  |              |                 |                       +- PrimaryPrefix[@CanonicalImage = "\', \'", @Image = "\', \'", @SelfModifier = false]
   |     |        |  |              |                 |                          +- Literal[@CanonicalImage = "\', \'", @Image = "\', \'"]
   |     |        |  |              |                 |                             +- StringLiteral[@CanonicalImage = "\', \'", @Image = "\', \'", @String = ", "]
   |     |        |  |              |                 +- Argument[@CanonicalImage = null]
   |     |        |  |              |                    +- Expression[@CanonicalImage = "3", @Image = "3"]
   |     |        |  |              |                       +- PrimaryPrefix[@CanonicalImage = "3", @Image = "3", @SelfModifier = false]
   |     |        |  |              |                          +- Literal[@CanonicalImage = "3", @Image = "3"]
   |     |        |  |              |                             +- NumericLiteral[@CanonicalImage = "3", @Image = "3"]
   |     |        |  |              +- Argument[@CanonicalImage = null]
   |     |        |  |                 +- Expression[@CanonicalImage = "1", @Image = "1"]
   |     |        |  |                    +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false]
   |     |        |  |                       +- Literal[@CanonicalImage = "1", @Image = "1"]
   |     |        |  |                          +- NumericLiteral[@CanonicalImage = "1", @Image = "1"]
   |     |        |  +- ColumnAlias[@CanonicalImage = "NAMES", @Image = "NAMES"]
   |     |        |     +- ID[@CanonicalImage = "NAMES", @Image = "NAMES"]
   |     |        +- BulkCollectIntoClause[@CanonicalImage = null]
   |     |        |  +- CollectionName[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |        |  |  +- ID[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |        |  +- CollectionName[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |        |     +- ID[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |        +- FromClause[@CanonicalImage = null]
   |     |        |  +- TableReference[@CanonicalImage = null]
   |     |        |     +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "EMPLOYEES"]
   |     |        |        +- ID[@CanonicalImage = "EMPLOYEES", @Image = "EMPLOYEES"]
   |     |        +- GroupByClause[@CanonicalImage = null]
   |     |        |  +- Expression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |     +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT", @SelfModifier = false]
   |     |        |        +- SimpleExpression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |           +- Column[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        |              +- ID[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |        +- OrderByClause[@CanonicalImage = null]
   |     |           +- SqlExpression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |              +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT", @SelfModifier = false]
   |     |                 +- SimpleExpression[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |                    +- Column[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     |                       +- ID[@CanonicalImage = "DEPARTMENT", @Image = "DEPARTMENT"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- Expression[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |        +- PrimaryPrefix[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @SelfModifier = false]
   |     |           +- FunctionCall[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- FunctionName[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |                 +- ArgumentList[@CanonicalImage = null]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                    |  +- Expression[@CanonicalImage = "TDEPARTMENTS.COUNT", @Image = "tDepartments.count"]
   |     |                    |     +- PrimaryPrefix[@CanonicalImage = "TDEPARTMENTS.COUNT", @Image = "tDepartments.count", @SelfModifier = false]
   |     |                    |        +- SimpleExpression[@CanonicalImage = "TDEPARTMENTS.COUNT", @Image = "tDepartments.count"]
   |     |                    |           +- TableName[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           |  +- ID[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           +- Column[@CanonicalImage = "COUNT", @Image = "count"]
   |     |                    |              +- ID[@CanonicalImage = "COUNT", @Image = "count"]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                       +- Expression[@CanonicalImage = "2", @Image = "2"]
   |     |                          +- PrimaryPrefix[@CanonicalImage = "2", @Image = "2", @SelfModifier = false]
   |     |                             +- Literal[@CanonicalImage = "2", @Image = "2"]
   |     |                                +- NumericLiteral[@CanonicalImage = "2", @Image = "2"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- Expression[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |        +- PrimaryPrefix[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @SelfModifier = false]
   |     |           +- FunctionCall[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- FunctionName[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |                 +- ArgumentList[@CanonicalImage = null]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                    |  +- Expression[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |     +- PrimaryPrefix[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments", @SelfModifier = false]
   |     |                    |        +- FunctionCall[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           +- FunctionName[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           |  +- ID[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |     |                    |              +- ArgumentList[@CanonicalImage = null]
   |     |                    |                 +- Argument[@CanonicalImage = null]
   |     |                    |                    +- Expression[@CanonicalImage = "1", @Image = "1"]
   |     |                    |                       +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false]
   |     |                    |                          +- Literal[@CanonicalImage = "1", @Image = "1"]
   |     |                    |                             +- NumericLiteral[@CanonicalImage = "1", @Image = "1"]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                       +- Expression[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |                          +- PrimaryPrefix[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @SelfModifier = false]
   |     |                             +- Literal[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'"]
   |     |                                +- StringLiteral[@CanonicalImage = "\'DEVS\'", @Image = "\'Devs\'", @String = "Devs"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- Expression[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |        +- PrimaryPrefix[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @SelfModifier = false]
   |     |           +- FunctionCall[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- FunctionName[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |                 +- ArgumentList[@CanonicalImage = null]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                    |  +- Expression[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |     +- PrimaryPrefix[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments", @SelfModifier = false]
   |     |                    |        +- FunctionCall[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           +- FunctionName[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           |  +- ID[@CanonicalImage = "TDEPARTMENTS", @Image = "tDepartments"]
   |     |                    |           +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |     |                    |              +- ArgumentList[@CanonicalImage = null]
   |     |                    |                 +- Argument[@CanonicalImage = null]
   |     |                    |                    +- Expression[@CanonicalImage = "2", @Image = "2"]
   |     |                    |                       +- PrimaryPrefix[@CanonicalImage = "2", @Image = "2", @SelfModifier = false]
   |     |                    |                          +- Literal[@CanonicalImage = "2", @Image = "2"]
   |     |                    |                             +- NumericLiteral[@CanonicalImage = "2", @Image = "2"]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                       +- Expression[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |                          +- PrimaryPrefix[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @SelfModifier = false]
   |     |                             +- Literal[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'"]
   |     |                                +- StringLiteral[@CanonicalImage = "\'SALES\'", @Image = "\'Sales\'", @String = "Sales"]
   |     +- Statement[@CanonicalImage = null]
   |     |  +- UnlabelledStatement[@CanonicalImage = null]
   |     |     +- Expression[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |        +- PrimaryPrefix[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @SelfModifier = false]
   |     |           +- FunctionCall[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- FunctionName[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |     |              +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |     |                 +- ArgumentList[@CanonicalImage = null]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                    |  +- Expression[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |                    |     +- PrimaryPrefix[@CanonicalImage = "TNAMES", @Image = "tNames", @SelfModifier = false]
   |     |                    |        +- FunctionCall[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |                    |           +- FunctionName[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |                    |           |  +- ID[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |     |                    |           +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |     |                    |              +- ArgumentList[@CanonicalImage = null]
   |     |                    |                 +- Argument[@CanonicalImage = null]
   |     |                    |                    +- Expression[@CanonicalImage = "1", @Image = "1"]
   |     |                    |                       +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false]
   |     |                    |                          +- Literal[@CanonicalImage = "1", @Image = "1"]
   |     |                    |                             +- NumericLiteral[@CanonicalImage = "1", @Image = "1"]
   |     |                    +- Argument[@CanonicalImage = null]
   |     |                       +- Expression[@CanonicalImage = "\'CLI\'\'IGAN, RUTH, GARETH\'", @Image = "\'Cli\'\'igan, Ruth, Gareth\'"]
   |     |                          +- PrimaryPrefix[@CanonicalImage = "\'CLI\'\'IGAN, RUTH, GARETH\'", @Image = "\'Cli\'\'igan, Ruth, Gareth\'", @SelfModifier = false]
   |     |                             +- Literal[@CanonicalImage = "\'CLI\'\'IGAN, RUTH, GARETH\'", @Image = "\'Cli\'\'igan, Ruth, Gareth\'"]
   |     |                                +- StringLiteral[@CanonicalImage = "\'CLI\'\'IGAN, RUTH, GARETH\'", @Image = "\'Cli\'\'igan, Ruth, Gareth\'", @String = "Cli\'\'igan, Ruth, Gareth"]
   |     +- Statement[@CanonicalImage = null]
   |        +- UnlabelledStatement[@CanonicalImage = null]
   |           +- Expression[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |              +- PrimaryPrefix[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq", @SelfModifier = false]
   |                 +- FunctionCall[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |                    +- FunctionName[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |                    |  +- ID[@CanonicalImage = "ASSERT_EQ", @Image = "assert_eq"]
   |                    +- Arguments[@ArgumentCount = 2, @CanonicalImage = null]
   |                       +- ArgumentList[@CanonicalImage = null]
   |                          +- Argument[@CanonicalImage = null]
   |                          |  +- Expression[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |                          |     +- PrimaryPrefix[@CanonicalImage = "TNAMES", @Image = "tNames", @SelfModifier = false]
   |                          |        +- FunctionCall[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |                          |           +- FunctionName[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |                          |           |  +- ID[@CanonicalImage = "TNAMES", @Image = "tNames"]
   |                          |           +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
   |                          |              +- ArgumentList[@CanonicalImage = null]
   |                          |                 +- Argument[@CanonicalImage = null]
   |                          |                    +- Expression[@CanonicalImage = "2", @Image = "2"]
   |                          |                       +- PrimaryPrefix[@CanonicalImage = "2", @Image = "2", @SelfModifier = false]
   |                          |                          +- Literal[@CanonicalImage = "2", @Image = "2"]
   |                          |                             +- NumericLiteral[@CanonicalImage = "2", @Image = "2"]
   |                          +- Argument[@CanonicalImage = null]
   |                             +- Expression[@CanonicalImage = "\'JOHN, JANE\'", @Image = "\'John, Jane\'"]
   |                                +- PrimaryPrefix[@CanonicalImage = "\'JOHN, JANE\'", @Image = "\'John, Jane\'", @SelfModifier = false]
   |                                   +- Literal[@CanonicalImage = "\'JOHN, JANE\'", @Image = "\'John, Jane\'"]
   |                                      +- StringLiteral[@CanonicalImage = "\'JOHN, JANE\'", @Image = "\'John, Jane\'", @String = "John, Jane"]
   +- DDLCommand[@CanonicalImage = "DROP", @Image = "DROP"]
      +- DDLEvent[@CanonicalImage = "DROP", @Image = "DROP"]
      +- ReadPastNextOccurrence[@CanonicalImage = "PROCEDURE ASSERT_EQ ;", @Image = "PROCEDURE ASSERT_EQ ;"]
         +- Read2NextOccurrence[@CanonicalImage = "PROCEDURE ASSERT_EQ", @Image = "PROCEDURE ASSERT_EQ "]
