This section describes every supported operation by the kb-base language. Every operation returns an kb-expr? that represents an expression interpreted by the kb-base interpreter. Similarly there is an buffer-safe-kb-expr? that represents an expression that doesn’t change the current editor buffer.
procedure
( insert-return )→kb-expr?
procedure
( delete start-expr[end-expr])→kb-expr?
= #f
procedure
( set-position pos-expr)→kb-expr?
procedure
( get-position )→kb-expr?
procedure
( last-position )→kb-expr?
procedure
( move-position codekind)→kb-expr?
Additionally, takes a kind 'sexp, which works with 'right or 'left.
procedure
( forward-sexp )→kb-expr?
procedure
( backward-sexp )→kb-expr?
procedure
( down-sexp )→kb-expr?
procedure
( up-sexp )→kb-expr?
procedure
( get-forward-sexp )→kb-expr?
procedure
( forward-sexp-exists? )→kb-expr?
procedure
( get-character [pos])→kb-expr?
= #f
procedure
( get-forward-word [pos])→kb-expr?
= #f
procedure
( get-text start-exprend-expr)→kb-expr?
procedure
step-size-exprstep-type) → kb-expr?
procedure
step-size-exprstep-type) → kb-expr?
syntax
( kb-let (let-clause...+)body-expr)
let-clause = [idval-expr]
procedure
( kb-if condition-exprthn-exprelse-expr)→kb-expr?
procedure
( kb-equal? expr1expr2)→kb-expr?
procedure
( kb-or expr1expr2)→kb-expr?
procedure
( kb-and expr1expr2)→kb-expr?
procedure
( kb-gte expr1expr2)→kb-expr?
procedure
( kb-lte expr1expr2)→kb-expr?
procedure
( kb-gt expr1expr2)→kb-expr?
procedure
( kb-lt expr1expr2)→kb-expr?
procedure
( add num-expr1num-expr2)→kb-expr?
procedure
( sub num-expr1num-expr2)→kb-expr?
This section documents helpers provided by the kb-base language.
The kb-base package also provides a few utilities to make testing easier. Since programs written in this language run in the context of an editor window (specifically a racket:text<%>), these test utilities handle setting that editor up and getting results back from running programs.
procedure
[ test-proc]