std/parsesql
Источник ИзменитьМодуль parsesql реализует высокопроизводительный парсер SQL-файлов. Он парсит синтаксис PostgreSQL и стандарт SQL ANSI.
Нестабильный API.
Импорты
- strutils, lexbase, decode_helpers, streams
Типы
SqlNodeKind = enum nkNone, nkIdent, nkQuotedIdent, nkStringLit, nkBitStringLit, nkHexStringLit, nkIntegerLit, nkNumericLit, nkPrimaryKey, nkForeignKey, nkNotNull, nkNull, nkStmtList, nkDot, nkDotDot, nkPrefix, nkInfix, nkCall, nkPrGroup, nkColumnReference, nkReferences, nkDefault, nkCheck, nkConstraint, nkUnique, nkIdentity, nkColumnDef, ## name, datatype, constraints nkInsert, nkUpdate, nkDelete, nkSelect, nkSelectDistinct, nkSelectColumns, nkSelectPair, nkAsgn, nkFrom, nkFromItemPair, nkGroup, nkLimit, nkOffset, nkHaving, nkOrder, nkJoin, nkDesc, nkUnion, nkIntersect, nkExcept, nkColumnList, nkValueList, nkWhere, nkCreateTable, nkCreateTableIfNotExists, nkCreateType, nkCreateTypeIfNotExists, nkCreateIndex, nkCreateIndexIfNotExists, nkEnumDef
- тип узла абстрактного синтаксического дерева SQL Источник Изменить
Процедуры
proc parseSql(input: Stream; filename: string): SqlNode {....raises: [IOError, OSError, IOError, OSError, ValueError, SqlParseError, Exception], tags: [ReadIOEffect, RootEffect, WriteIOEffect], forbids: [].}- парсит SQL из
inputв AST и возвращает AST.filenameиспользуется только для сообщений об ошибках. Синтаксические ошибки вызывают исключениеSqlParseError. Источник Изменить proc parseSql(input: string; filename = ""): SqlNode {. ...raises: [IOError, OSError, ValueError, SqlParseError, Exception], tags: [ReadIOEffect, RootEffect, WriteIOEffect], forbids: [].}- парсит SQL из
inputв AST и возвращает AST.filenameиспользуется только для сообщений об ошибках. Синтаксические ошибки вызывают исключениеSqlParseError. Источник Изменить
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/parsesql.html