Документация iSZN

pkParse.sql

Общий парсинг

ParseError

PROCEDURE ParseError(sMsg VARCHAR2 := NULL, sExtra VARCHAR2 := NULL, sExpr VARCHAR2 := NULL, iPos PLS_INTEGER := NULL, iCode PLS_INTEGER := -20000);

Описание

Генерирует форматированную ошибку парсинга.

GetOperatorId

FUNCTION GetOperatorId(sKeyword VARCHAR2, iParserID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает ID оператора по ключевому слову. Сравнение производится без учёта регистра.

  • Если у заданного парсера такого ключевого слова нет, возвращает null.

GetNextToken

FUNCTION GetNextToken(sExpr VARCHAR2, i IN OUT PLS_INTEGER, t OUT TToken, iParserID PLS_INTEGER, iLastPriority PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает следующую по списку лексему из выражения sExpr i - позиция, начиная с которой производится разбор (нумерация с 1) iLastPriority - приоритет предыдущей лексема или -1, если это первая лексема.

ParseExprToRPN

PROCEDURE ParseExprToRPN(sExpr VARCHAR2, Tokens OUT TTokens, iParser PLS_INTEGER);

Описание

Производит перевод выражения в обратную польскую нотацию (RPN). iParser - ID парсера, для которого выбираются обрабатываемые символы.

Парсинг конкретных выражений

RPNToRgnIDPresenceList

PROCEDURE RPNToRgnIDPresenceList(Tokens IN OUT TTokens, PresenceList OUT TRgnIDPresenceList);

Описание

Производит подготовку Tokens и TRgnIDPresenceList для выполнения выражения в RPN.

RPNToPDocReqInfoList

PROCEDURE RPNToPDocReqInfoList(Tokens IN OUT TTokens, InfoList OUT TPDocReqInfoList);

Описание

Производит подготовку Tokens и TPDocReqInfoList для выполнения выражения в RPN ID реквизитов должны начинаться с #, ID дочерних реквизитов - с ##.

RPNToIntegerList

PROCEDURE RPNToIntegerList(Tokens IN OUT TTokens);

Описание

Производит подготовку Tokens: переводит все sValue в iData.

ComputeRgnIDPresenceList

FUNCTION ComputeRgnIDPresenceList(Tokens TTokens, PresenceList TRgnIDPresenceList, iOR PLS_INTEGER, iAND PLS_INTEGER, iNOT PLS_INTEGER) RETURN BOOLEAN;

Описание

Производит вычисление выражения с TRgnIDPresenceList

  • Tokens - последовательность операций в RPN
  • RgnIDPresenceList - список заполненных RgnIDPresence
  • iOR, iAND, iNOT - идентификаторы соответствующих операторов.

ComputePDocReqInfoList

FUNCTION ComputePDocReqInfoList(Tokens TTokens, InfoList TPDocReqInfoList, ValueList TPDocValueList) RETURN BOOLEAN;

Описание

Производит вычисление выражения с реквизитами персональных документов

  • Tokens - последовательность операций в RPN
  • InfoList - список заполненных реквизитов
  • ValueList - список значений реквизитов.