| Class | Description | 
                            | AbstractGinqExpression | Represents GINQ expression which could hold metadata | 
                            | DataSourceExpression | Represents data source expression | 
                            | FilterExpression | Represents filter expression | 
                            | FromExpression | Represents the from expression | 
                            | GinqExpression | Represents GINQ expression, which has the following structure: 
     ginq
     |__ from
     |__ [innerjoin/leftjoin/rightjoin/fulljoin/crossjoin]*
     |   |__ on
     |__ [where]
     |__ [groupby]
     |   |__ [having]
     |__ [orderby]
     |__ [limit]
     |__ select
 (Note: [ ] means optional)
 | 
                            | GroupExpression | Represents group by expression | 
                            | HavingExpression | Represents having expression | 
                            | JoinExpression | Represents join expression | 
                            | LimitExpression | Represents limit expression | 
                            | OnExpression | Represents on expression | 
                            | OrderExpression | Represents order by expression | 
                            | ProcessExpression | Represents process expression, e.g. where, groupby, orderby, limit, select | 
                            | SelectExpression | Represents the select expression | 
                            | ShutdownExpression | Represent the shutdown expression | 
                            | WhereExpression | Represent the where expression |