6}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-InferredType to represent parse errors.contains the error messagefilename location for the error4line number and column number location for the errorDformatted error with the position, error message and source context Safe-Inferred   Safe-Inferred+L:Comment. Useful when generating SQL code programmatically.]Used to set the dialect used for parsing and pretty printing, very unfinished at the moment. The join condition. using (column list) on exprThe type of a join.Represents an alias for a table valued expression, used in with queries and in from alias, e.g. select a from t u, select a from t u(b), with a(c) as select 1, select * from a.;Represents a entry in the csv of tables in the from clause.from lateral tfrom function(args)from (query expr)from a as b(c,d)from (a)3from a join b, the bool is true if natural was usedfrom t / from s.t(Represents an item in a group by clause.$/Corresponding, an option for the set operators.'Query expression set operators.+'The direction for a column in order by./Represents the Distinct or All keywords, which can be used before a select list, in an aggregate/window function application, or in a query expression set operator.3,Represents a query expression, which can be:a regular select;*a set operator (union, except, intersect);!a common table expression (with);2a table value constructor (values (1,2),(3,4)); oran explicit table (table t).B&the expressions and the column aliasesJ&represents the start or end of a frameP@Represents whether a window frame clause is over rows or ranges.SRepresents the frame clause of a window this can be [range | rows] frame_start or [range | rows] between frame_start and frame_endV?Represents 'nulls first' or 'nulls last' in an order by clause.Z)Represents one field in an order by list.`!A subquery in a value expression.aa scalar subquerybunique (query expr)cexists (query expr)dMUsed for 'expr in (value expression list)', and 'expr in (subquery)' syntax.r&Represents a type name, used in casts.}?Represents an identifier name, which can be quoted or unquoted.~Wdialect quoted name, the fields are start quote, end quote and the string itself, e.g.  somethinga is parsed to DQName "`" "`" "something, and $a$ test $a$ is parsed to DQName "$a$" "$a" " test "Represents a value expression. This is used for the expressions in select lists. It is also used for expressions in where, group by, having, order by and so on.`this is used for the query expression version of array constructors, e.g. array(select * from t)represents an array access expression, or an array ctor e.g. a[3]. The first valueExpr is the array, the second is the subscripts/ctor argshrepresents a host parameter, e.g. :a. The Maybe String is for the indicator, e.g. :var indicator :nl'Represents a ? in a parameterized querybin list literal and in subquery, if the bool is false it means not in was used ('a not in (1,2)')!exists, all, any, some subqueries!prefix 'typed literal', e.g. int '42'cast(a as typename)(case expression. both flavours supported test value when branches else valueUsed for the operators which look like functions except the arguments are separated by keywords instead of commas. The maybe is for the first unnamed argument if it is present, and the list is for the keyword argument pairs.rUsed for ternary, mixfix and other non orthodox operators. Currently used for row constructors, and for between.nPostfix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.mPrefix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.Infix binary operators. This is used for symbol operators (a + b), keyword operators (a and b) and multiple keyword operators (a is similar to b)window application, which adds over (partition by a order by b) to regular function application. Explicit frames are not currently supportedwindow function nameargs partition byorder by frame clauseaggregates with within group within groupaaggregate application, which adds distinct or all, and order by, to regular function applicationaggregate function namedistinctargsorder byfilter[function application (anything that looks like c style function application syntactically)#star, as in select *, t.*, count(*)'identifier with parts separated by dotsPtext of interval literal, units of interval precision, e.g. interval 3 days (3)true if + used, false if - used literal textfstring literal, currently only basic strings between single quotes with a single quote escaped using ''Ea numeric literal optional decimal point, e+- integral exponent, e.g1010..110.11e512.34e-6Helper/ 'default'd value for query exprs to make creating query expr values a little easier. It is defined like this: |makeSelect :: QueryExpr makeSelect = Select {qeSetQuantifier = SQDefault ,qeSelectList = [] ,qeFrom = [] ,qeWhere = Nothing ,qeGroupBy = [] ,qeHaving = Nothing ,qeOrderBy = [] ,qeOffset = Nothing ,qeFetchFirst = Nothing}  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~r|{zyxwvutspqjonmlkgih/210Z[+.-,VYXWdfe`cba\_^]SUTPRQJONMLK3@;7654ABCDEFGHI<=A>?89:'*)($&%#"!     #"! $&%'*)(+.-,/2103@;7654ABCDEFGHI<=A>?89:JONMLKPRQSUTVYXWZ[\_^]`cbadfegihjonmlkpqr |{zyxwvuts}~7 Safe-InferredE1Parses a query expr, trailing semicolon optional.dParses a list of query expressions, with semi colons between them. The final semicolon is optional.Parses a value expression.sdialect of SQL to use!filename to use in error messages\line number and column number of the first character in the source to use in error messagesthe SQL source to parsedialect of SQL to use!filename to use in error messages\line number and column number of the first character in the source to use in error messagesthe SQL source to parsedialect of SQL to use!filename to use in error messages\line number and column number of the first character in the source to use in error messagesthe SQL source to parse      !"#$%&'()*+,-./0123456789:;<  h      !"#$%&'()*+,-./0123456789:;< Safe-Inferred,Convert a query expr ast to concrete syntax.,Convert a value expr ast to concrete syntax.bConvert a list of query exprs to concrete syntax. A semi colon is inserted after each query expr.=>?@ABCDEFGHIJKLMNO=>?@ABCDEFGHIJKLMNOP      !"#$%&'()(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTSUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|s}~}      !"#$%&'()*+,-./0123456789:;<=>? @A2BCDsimple-sql-parser-0.4.1Language.SQL.SimpleSQL.ParserLanguage.SQL.SimpleSQL.SyntaxLanguage.SQL.SimpleSQL.PrettyLanguage.SQL.SimpleSQL.Errors"Language.SQL.SimpleSQL.Combinators ParseError peErrorString peFilename pePositionpeFormattedErrorComment BlockCommentDialectMySQLSQL2011 JoinCondition JoinUsingJoinOnJoinTypeJCrossJFullJRightJLeftJInnerAliasTableRef TRLateral TRFunction TRQueryExprTRAliasTRParensTRJoinTRSimple GroupingExpr SimpleGroup GroupingSetsRollupCubeGroupingParens Corresponding Respectively CombineOp IntersectExceptUnion DirectionDescAsc DirDefault SetQuantifierAllDistinct SQDefault QueryExpr QECommentTableValuesWithqeWithRecursiveqeViewsqeQueryExpressionCombineQueryExprqe0qeCombOpqeCorrespondingqe1SelectqeSetQuantifier qeSelectListqeFromqeWhere qeGroupByqeHaving qeOrderByqeOffset qeFetchFirstFramePosUnboundedFollowing FollowingCurrent PrecedingUnboundedPreceding FrameRows FrameRangeFrame FrameBetween FrameFrom NullsOrder NullsLast NullsFirstNullsOrderDefaultSortSpecCompPredQuantifierCPAllCPSomeCPAnySubQueryExprTypeSqSqSqUniqueSqExists InPredValue InQueryExprInList PrecUnits PrecOctetsPrecCharactersPrecMultiplierPrecPPrecTPrecGPrecMPrecKIntervalTypeFieldItfTypeNameMultisetTypeName ArrayTypeNameIntervalTypeName RowTypeName TimeTypeName CharTypeNamePrecLengthTypeNamePrecScaleTypeName PrecTypeNameNameDQNameUQNameQName ValueExpr VEComment NextValueForMultisetQueryCtor MultisetCtor MultisetBinOpCollateUEscapeEscape CSStringLit ArrayCtorArrayMatchQuantifiedComparison HostParameter ParameterIn SubQueryExprTypedLitCastParensCasecaseTest caseWhenscaseElse SpecialOpK SpecialOp PostfixOpPrefixOpBinOp WindowAppwnNamewnArgs wnPartition wnOrderBywnFrameAggregateAppGroupaggGroup AggregateAppaggName aggDistinctaggArgs aggOrderBy aggFilterAppStarIden IntervalLitilSign ilLiteralilFromilTo StringLitNumLit makeSelectparseQueryExprparseQueryExprsparseValueExprprettyQueryExprprettyValueExprprettyQueryExprsconvParseError formatErrorParser optionSuffix<$$><$$$><$$$$><$$$$$>flip3flip4flip5 ParseStateTableExpression_teFrom_teWhere _teGroupBy _teHaving _teOrderBy _teOffset _teFetchFirstSpecialOpKFirstArg SOKMandatory SOKOptionalSOKNone wrapParsenamenamestypeName stringLit numberLitcharacterSetLit simpleLiteralstar parameter parensExprcaseExprcastsubquery arrayCtor multisetCtor nextValueFor intervalLitidenExpr specialOpK specialOpKsextractposition substringconvert translateoverlaytrimappafilter withinGroupwindowinSuffix betweenSuffixquantifiedComparisonSuffixmatchPredicateSuffix arraySuffix escapeSuffix collateSuffixopTable valueExprterm valueExprBintervalQualifier datetimeField duplicates selectItem selectListfromjoinType joinCondition fromAlias whereClause groupByClausehavingorderBy offsetFetchoffsetfetchwith queryExprtableExpressionsetOptopLevelQueryExpr queryExprsmakeKeywordTree whitespacelexemeunsignedInteger numberLiteral identifierquotedIdentifierquotedIdenHelperuquotedIdentifierhostParameterTokensymbol questionMark openParen closeParen openBracket closeBracketcommasemiquote stringTokenkeyword keywords_parensbracketscommaSepkeyword_symbol_ commaSep1identifierBlacklist blacklist reservedWord guardDialectdoubleUpQuotesdoubleUpDoubleQuotesunnameunnamesintervalTypeFieldaliasmaybeValueExprgrpBymecomment