procedure AddVariable(v:TPrologVariable) - добавление переменной в список переменных;
function AddNewVariable:TPrologVariable - создание и добавление новой переменной в список;
procedure DeleteVariable(n:integer) procedure DeleteVariable(vName:string) procedure DeleteLastVariable - удаление переменной по ее индексу или по имени, либо последнюю переменную в списке;
function VariableByName(vName:string):TPrologVariable - доступ к конкретной переменной по ее имени;
property Variables[ind:integer]:TPrologVariable - свойство, оргназиующее доступ к переменным как к массиву переменных.
Все стандартные функции и предикаты имеют одинаковые параметры.
Объявление функции выглядит следующим образом:
TStdFunction=function (Args:TPrologVariables):TPrologVariable;
Args - пакет с входными параметрами.
Функция возвращает значение в виде переменной TPrologVariable.
Объявление функции, выполняющая работу предиката:
TStdPredicate=function (VarPacket:TPrologVariables; BackTracking:Boolean):Boolean;
VarPacket - пакет с параметрами к предикату
BackTracking - логическая переменная, которая установлена в True, если предикат был вызван на обратном пути алгоритма бэктрекинга.
Функция возвращает логическое значение, которое должен возвратить предикат после своего выполнения.
Для хранения откомпилированной Пролог-программы используются три класса TPrologTerm, TPredicateClause и TProgramPredicate.
TPrologTerm служит для хранения одного условия внутри предложения. В нем хранится тип условия (выражение, предикат, база данных), позиция условия в тексте Пролог-программы, а также указатель (Data) на объект представляющий данное условие (TSubTermPredicate, TSubTermExtData, TSubTermExpression).
TSubTermPredicate служит для хранения условий-предикатов. В данном классе есть следующие поля:
Name :String - имя предиката;
StandardPredicate :Boolean - True - если предикат стандартный;
Params :TVariablesArray - параметры для вызова предиката;
NoInverse :Boolean - признак наличия или отсутствия инверсии перед вызовом предиката.
TSubTermExtData аналогичен классу TSubTermPredicate за исключением того, что в нем нет поля StandardPredicate.
TSubTermExtData предназначен для представления арифметических выражений. Он представляет собой рекурсивный объект с полями LeftHand и RightHand для представления выражений левой и правой частей выражения. Данный класс содержит следующие поля:
Operation :TExpressionOperation - тип операции;
FuncName :String - имя функции, если Operation=eoFunction;
Operand :TPrologVariable - переменная или константа, если Operation=eoVariable;
LeftHand :TSubTermExpression - левая часть выражения;
RightHand :TSubTermExpression - правая часть выражения
FuncParams :array of TSubTermExpression - параметры функции, если Operation=eoFunction.
TPredicateClause хранит в себе одно предложение. Параметры предложения хранятся в массиве Params, а условия - в Terms.
TProgramPredicate хранит полную информацию о предикате. Объект этого класса используется как на этапе компиляции, так и на этапе интерпретации. Он хранит имя предиката (Name), типы параметров, текст предиката, все лексемы предиката, а также массив с предложениями предиката.
Класс TPrologProgram хранит всю информацию о Пролог-программе:
Описания типов (Domains);
Описания баз данных (ExtData);
Предикаты (TProgramPredicate);
Массив со стеком (Stack);
Массив с контрольными точками (BreakPoints);
Имя запускаемого предиката (StartPredicate);
Флаг работы программы (OnTheRun).
Модуль CompileUnit. В данном модуле определяется класс пролог-программы - TPrologProgram, а также два класса, использующихся при запуске интерпретатора: TStackNode и TSubStackNode. Модуль CompileUnit является ядром интерпретатора.
Модуль ProgramClasses. В данном модуле описываются основные классы, использующиеся в объектах TPrologProgram, TStackNode и TSubStackNode как контейнерные:
TLexemRecord - представляет одну лексему, выделенную из текста программы;
TPrologVariable - представляет переменную во время выполнения пролог-программы.
TPrologVariableList - контейнерный класс, использующийся в TPrologVariable, для представления списков;
TPrologVariableStruct - контейнерный класс, использующийся в классе TPrologVariable, для представления структур;
TPrologVariables - класс, представляющий собой список переменных TPrologVariable с возможностью доступа к переменной по имени;
TSubTermPredicate - класс использующийся в TPrologTerm для представления обычного предикатного условия в предложении;
TSubTermExtData - класс использующийся в TPrologTerm для представления предикатного условия вызова базы данных в предложении;
TSubTermExpression - класс использующийся в TPrologTerm для представления арифметических выражений в предложении;
TPrologTerm - класс использует TSubTermPredicate, TSubTermExtData, TSubTermExpression как контейнерные для представления одного условия в предложении;
TPredicateClause - использует массив объекстов TPrologTerm и TPrologVariable для представления одного предложения в программе;
TProgramDomain - класс использующийся в TPrologProgram как контейнерный для описания типов;
TProgramExtData - класс использующийся в TPrologProgram как контейнерный для описания баз данных;
TProgramPredicate - класс использующийся в TPrologProgram как контейнерный для описания предикатов;
TPrologFile - класс использующийся в TPrologProgram как контейнерный для описания файлов открытых во время выполнения программы;
Модуль PrologRunTime описывает класс ошибок TRunTimeError, а также все функции и встроенные предикаты Пролога.
MainFormUnit - модуль описания главной формы TMainForm;
ProgFormUnit - модуль описания окна инспектора TProgForm;
DomConstrFormUnit - модуль описания конструктора типов TExtDataForm;
ExtDataFormUnit - модуль описания конструктора баз данных TExtDataForm;
PredicateConstrFormUnit - модуль описания конструктора предикатов TPredicateConstrForm;
EditorFormUnit - модуль описания окна редактора TEditorForm
ConsoleUnit - модуль описания окна консоли TConsole;
ErrorsFormUnit - модуль описания окна ошибок компиляции TErrorsForm;
StackFormUnit - модуль описания окна стека программы TStackForm;
RunTimeDebugFormUnit - модуль описания окна отладки программы TRunTimeDebugForm;
BreakPointsFormUnit - модуль описания окна контрольных точек TBreakPointsForm;
ProjectOptionsFormUnit - модуль описания окна опций проекта.
Имя поля
Тип поля
Комментарий
Task
String[33]
Название задачи
Frequency
Integer[4]
Частота процессора
Processor
String[17]
Тип процессора
Memory
Размер ОЗУ
VideoMemory
Размер видеопамяти
HDD
Размер винчестера
MonitorSize
Диагональ монитора
Addition1Name
Название 1-го дополнительного устройства
Addition1Value
String[9]
Характеристика 1-го дополнительного устройства
Addition2Name
Название 2-го дополнительного устройства
Addition2Value
Характеристика 2-го дополнительного устройства
Addition3Name
Название 3-го дополнительного устройства
Addition3Value
Характеристика 3-го дополнительного устройства
Addition4Name
Название 4-го дополнительного устройства
Addition4Value
Характеристика 4-го дополнительного устройства
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15