'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&Safe0L: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.on exprusing (column list)The 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 t / from s.t3from a join b, the bool is true if natural was usedfrom (a)from a as b(c,d)from (query expr)from function(args)from lateral 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.-,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).5&the expressions and the column aliasesD&represents the start or end of a frameJ@Represents whether a window frame clause is over rows or ranges.MRepresents the frame clause of a window this can be [range | rows] frame_start or [range | rows] between frame_start and frame_endP?Represents 'nulls first' or 'nulls last' in an order by clause.T)Represents one field in an order by list.Z!A subquery in a value expression.[exists (query expr)\unique (query expr)]a scalar subquery^MUsed for 'expr in (value expression list)', and 'expr in (subquery)' syntax.l&Represents a type name, used in casts.w?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.}Ea numeric literal optional decimal point, e+- integral exponent, e.g1010..110.11e512.34e-6~hstring literal, currently only basic strings between single quotes with a single quote escaped using ''Ptext of interval literal, units of interval precision, e.g. interval 3 days (3)'identifier with parts separated by dots#star, as in select *, t.*, count(*)[function application (anything that looks like c style function application syntactically)aaggregate application, which adds distinct or all, and order by, to regular function applicationaggregates with within groupwindow application, which adds over (partition by a order by b) to regular function application. Explicit frames are not currently supportedInfix binary operators. This is used for symbol operators (a + b), keyword operators (a and b) and multiple keyword operators (a is similar to b)mPrefix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.nPostfix unary operators. This is used for symbol operators, keyword operators and multiple keyword operators.rUsed for ternary, mixfix and other non orthodox operators. Currently used for row constructors, and for between.Used 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.(case expression. both flavours supportedcast(a as typename)!prefix 'typed literal', e.g. int '42'!exists, all, any, some subqueriesbin list literal and in subquery, if the bool is false it means not in was used ('a not in (1,2)')'Represents a ? in a parameterized queryhrepresents a host parameter, e.g. :a. The Maybe String is for the indicator, e.g. :var indicator :nlrepresents an array access expression, or an array ctor e.g. a[3]. The first valueExpr is the array, the second is the subscripts/ctor args`this is used for the query expression version of array constructors, e.g. array(select * from t)true if + used, false if - used literal textaggregate function namedistinctargsorder byfilter within groupwindow function nameargs partition byorder by frame clause test value when branches else valueHelper/ '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{|}~  !#"$%&'(),*+-2./013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|}~wxyz{lmnopqrstuvjkdefghiabc)*+,TU%&'(PQRS^_`Z[\]VWXYMNOJKLDEFGHI-./0123456789:;<=>4?@ABC!"#$    !"#$%&'()*+,-./0123456789:;<=>4?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|7}~Safe,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.'()*+,-./0123456789'()*+,-./0123456789SafeType to represent parse errors. contains the error message!filename location for the error"4line number and column number location for the error#Dformatted error with the position, error message and source context !"#:; !"#: !"#:;Safe <=>?@ABCDEFG=>?@ABCD <=>?@ABCDEFGSafeL$1Parses 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.sHIJKLMNOPQRSTUV$dialect 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%dialect 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&dialect 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 parseWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%& $&% !"#hHIJKLMNOPQRSTUV$%&WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnnopqrstuvwxxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF;GHHIJKLMNOPQRST+,-UVWXYZ[\]^_`abcdefghijklmnopqrstuvwx&yz{|}~125/6.simple-sql-parser-0.4.3-J5gEPN46bboBx6uNLLsR7PLanguage.SQL.SimpleSQL.SyntaxLanguage.SQL.SimpleSQL.PrettyLanguage.SQL.SimpleSQL.ParserLanguage.SQL.SimpleSQL.Errors"Language.SQL.SimpleSQL.CombinatorsComment BlockCommentDialectSQL2011MySQL JoinConditionJoinOn JoinUsingJoinTypeJInnerJLeftJRightJFullJCrossAliasTableRefTRSimpleTRJoinTRParensTRAlias TRQueryExpr TRFunction TRLateral GroupingExprGroupingParensCubeRollup GroupingSets SimpleGroup Corresponding Respectively CombineOpUnionExcept Intersect Direction DirDefaultAscDesc SetQuantifier SQDefaultDistinctAll QueryExprSelectCombineQueryExprWithValuesTable QECommentqeSetQuantifier qeSelectListqeFromqeWhere qeGroupByqeHaving qeOrderByqeOffset qeFetchFirstqe0qeCombOpqeCorrespondingqe1qeWithRecursiveqeViewsqeQueryExpressionFramePosUnboundedPreceding PrecedingCurrent FollowingUnboundedFollowing FrameRows FrameRangeFrame FrameFrom FrameBetween NullsOrderNullsOrderDefault NullsFirst NullsLastSortSpecCompPredQuantifierCPAnyCPSomeCPAllSubQueryExprTypeSqExistsSqUniqueSqSq InPredValueInList InQueryExpr PrecUnitsPrecCharacters PrecOctetsPrecMultiplierPrecKPrecMPrecGPrecTPrecPIntervalTypeFieldItfTypeName PrecTypeNamePrecScaleTypeNamePrecLengthTypeName CharTypeName TimeTypeName RowTypeNameIntervalTypeName ArrayTypeNameMultisetTypeNameNameQNameUQNameDQName ValueExprNumLit StringLit IntervalLitIdenStarApp AggregateAppAggregateAppGroup WindowAppBinOpPrefixOp PostfixOp SpecialOp SpecialOpKCaseParensCastTypedLit SubQueryExprIn Parameter HostParameterQuantifiedComparisonMatchArray ArrayCtor CSStringLitEscapeUEscapeCollate MultisetBinOp MultisetCtorMultisetQueryCtor NextValueFor VECommentilSign ilLiteralilFromilToaggName aggDistinctaggArgs aggOrderBy aggFilteraggGroupwnNamewnArgs wnPartition wnOrderBywnFramecaseTest caseWhenscaseElse makeSelect$fEqName $fShowName $fReadName $fDataName$fEqIntervalTypeField$fShowIntervalTypeField$fReadIntervalTypeField$fDataIntervalTypeField$fEqPrecMultiplier$fShowPrecMultiplier$fReadPrecMultiplier$fDataPrecMultiplier $fEqPrecUnits$fShowPrecUnits$fReadPrecUnits$fDataPrecUnits $fEqTypeName$fShowTypeName$fReadTypeName$fDataTypeName$fEqSubQueryExprType$fShowSubQueryExprType$fReadSubQueryExprType$fDataSubQueryExprType$fEqCompPredQuantifier$fShowCompPredQuantifier$fReadCompPredQuantifier$fDataCompPredQuantifier$fEqNullsOrder$fShowNullsOrder$fReadNullsOrder$fDataNullsOrder $fEqFrameRows$fShowFrameRows$fReadFrameRows$fDataFrameRows$fEqSetQuantifier$fShowSetQuantifier$fReadSetQuantifier$fDataSetQuantifier $fEqDirection$fShowDirection$fReadDirection$fDataDirection $fEqCombineOp$fShowCombineOp$fReadCombineOp$fDataCombineOp$fEqCorresponding$fShowCorresponding$fReadCorresponding$fDataCorresponding $fEqAlias $fShowAlias $fReadAlias $fDataAlias $fEqJoinType$fShowJoinType$fReadJoinType$fDataJoinType $fEqDialect $fShowDialect $fReadDialect $fDataDialect $fEqComment $fShowComment $fReadComment $fDataComment $fEqValueExpr$fShowValueExpr$fReadValueExpr$fDataValueExpr $fEqQueryExpr$fShowQueryExpr$fReadQueryExpr$fDataQueryExpr $fEqTableRef$fShowTableRef$fReadTableRef$fDataTableRef$fEqJoinCondition$fShowJoinCondition$fReadJoinCondition$fDataJoinCondition$fEqGroupingExpr$fShowGroupingExpr$fReadGroupingExpr$fDataGroupingExpr $fEqSortSpec$fShowSortSpec$fReadSortSpec$fDataSortSpec $fEqFrame $fShowFrame $fReadFrame $fDataFrame $fEqFramePos$fShowFramePos$fReadFramePos$fDataFramePos$fEqInPredValue$fShowInPredValue$fReadInPredValue$fDataInPredValueprettyQueryExprprettyValueExprprettyQueryExprs ParseError peErrorString peFilename pePositionpeFormattedErrorparseQueryExprparseQueryExprsparseValueExpr valueExprdoubleUpQuotesdoubleUpDoubleQuotesunnameunnamesnamenamestypeNameintervalTypeField queryExpralias selectListfrommaybeValueExprgrpByorderBycommaSepmecommentconvParseError formatErrorParser optionSuffix<$$><$$$><$$$$><$$$$$>flip3flip4flip5 ParseStateTableExpression_teFrom_teWhere _teGroupBy _teHaving _teOrderBy _teOffset _teFetchFirstSpecialOpKFirstArgSOKNone SOKOptional SOKMandatory wrapParse stringLit numberLitcharacterSetLit simpleLiteralstar parameter parensExprcaseExprcastsubquery arrayCtor multisetCtor nextValueFor intervalLitidenExpr specialOpK specialOpKsextractposition substringconvert translateoverlaytrimappafilter withinGroupwindowinSuffix betweenSuffixquantifiedComparisonSuffixmatchPredicateSuffix arraySuffix escapeSuffix collateSuffixopTableterm valueExprBintervalQualifier datetimeField duplicates selectItemjoinType joinCondition fromAlias whereClause groupByClausehaving offsetFetchoffsetfetchwithtableExpressionsetOptopLevelQueryExpr queryExprsmakeKeywordTree whitespacelexemeunsignedInteger numberLiteral identifierquotedIdentifierquotedIdenHelperuquotedIdentifierhostParameterTokensymbol questionMark openParen closeParen openBracket closeBracketcommasemiquote stringTokenkeyword keywords_parensbracketskeyword_symbol_ commaSep1identifierBlacklist blacklist reservedWord guardDialect