registerDatabaseBuiltins function
Registers database manipulation built-ins.
Note: These provide Prolog-level access to the database. The Database and PrologEngine classes provide Dart-level APIs.
Implementation
void registerDatabaseBuiltins(
final BuiltinRegistry registry,
final Database database,
) {
// asserta/1 - assert clause at beginning
registry.register('asserta', 1, (context) => _asserta(context, database));
// assertz/1 - assert clause at end
registry.register('assertz', 1, (context) => _assertz(context, database));
// assert/1 - same as assertz/1 (ISO default)
registry.register('assert', 1, (context) => _assertz(context, database));
// retract/1 - retract first matching clause
registry.register('retract', 1, (context) => _retract(context, database));
// abolish/1 - remove all clauses for a predicate
registry.register('abolish', 1, (context) => _abolish(context, database));
// consult/1 - load Prolog file
registry.register('consult', 1, (context) => _consult(context, database));
// load/1 - alias for consult/1
registry.register('load', 1, (context) => _consult(context, database));
}