registerDatabaseBuiltins function

void registerDatabaseBuiltins(
  1. BuiltinRegistry registry,
  2. Database database
)

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));
}