Набор библиотек для Рефала-5

Библиотека R5FW-Parser

Лексический анализатор для Рефала-5

Лексический анализатор для Рефала-5, для указанного файла формирует последовательность токенов.

<Scan e.SourceFile> == t.Token*
t.Pos ::= (s.Line s.Col e.FileName)

Возвращает последовательность токенов для данного файла. Тип t.Token описан в R5FW-Parser-Defs.

Позиция в исходном тексте, формируемая лексическим анализатором, содержит номер колонки, строки и имя файла.

<ScanString-FromPos t.InitPos e.String> == e.Tokens
t.InitPos ::= t.Pos

Разбивает строку на токены, начальной позицией принимается t.InitPos.

Синтаксический анализатор для Рефала-5

<Parse e.Tokens>
  == Success e.Refal5-AST
  == Fails t.Error*

t.Error ::= (t.SrcPos e.Message)

Функция Parse принимает последовательность токенов и возвращает абстрактное синтаксическое дерево. Типы t.Token и e.Refal5-AST описаны в R5FW-Parser-Defs.

Если файл содержит корректный текст на Рефале, функция возвращает Success и синтаксическое дерево. Иначе функция возвращает Fails и список ошибок. Таким образом, возвращаемое дерево всегда соответствует корректной программе.

К позициям токенов парсер относится как к чёрному ящику, внутрь t.SrcPos не заглядывает.