init commit
This commit is contained in:
commit
32cd7f8a20
54
extensions.ino
Normal file
54
extensions.ino
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
User Extensions
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Definitions
|
||||||
|
object *fn_sym_def (object *args, object *env) {
|
||||||
|
(void) env;
|
||||||
|
object *obj = first(args);
|
||||||
|
pfun_t pfun = pstreamfun(cdr(args));
|
||||||
|
#if defined(gfxsupport)
|
||||||
|
if (pfun == gfxwrite) ppwidth = GFXPPWIDTH;
|
||||||
|
#endif
|
||||||
|
object *pair = findvalue(obj, env);
|
||||||
|
object *var = car(pair);
|
||||||
|
object *val = cdr(pair);
|
||||||
|
pln(pfun);
|
||||||
|
if (consp(val) && symbolp(car(val)) && builtin(car(val)->name) == LAMBDA) {
|
||||||
|
superprint(cons(bsymbol(DEFUN), cons(var, cdr(val))), 0, false, pfun);
|
||||||
|
} else {
|
||||||
|
superprint(cons(bsymbol(DEFVAR), cons(var, cons(quote(val), NULL))), 0, false, pfun);
|
||||||
|
}
|
||||||
|
pln(pfun);
|
||||||
|
ppwidth = PPWIDTH;
|
||||||
|
return bsymbol(NOTHING);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Symbol names
|
||||||
|
const char string_sym_def[] PROGMEM = "symbol-def";
|
||||||
|
|
||||||
|
|
||||||
|
// Documentation strings
|
||||||
|
const char doc_sym_def[] PROGMEM = "(symbol-def symbol [str])\n"
|
||||||
|
"Prints the definition of a symbol (variable or function) defined in ulisp using the pretty printer."
|
||||||
|
"If str is specified it prints to the specified stream. It returns no value.";
|
||||||
|
|
||||||
|
|
||||||
|
// Symbol lookup table
|
||||||
|
const tbl_entry_t lookup_table2[] PROGMEM = {
|
||||||
|
|
||||||
|
{ string_sym_def, fn_sym_def, 0212, doc_sym_def }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Table cross-reference functions
|
||||||
|
|
||||||
|
tbl_entry_t *tables[] = {lookup_table, lookup_table2};
|
||||||
|
const unsigned int tablesizes[] = { arraysize(lookup_table), arraysize(lookup_table2) };
|
||||||
|
|
||||||
|
const tbl_entry_t *table (int n) {
|
||||||
|
return tables[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int tablesize (int n) {
|
||||||
|
return tablesizes[n];
|
||||||
|
}
|
6749
tdeck-ulisp.ino
Normal file
6749
tdeck-ulisp.ino
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue