static Any getSyntaxSyntaxTable(SyntaxTable t, Int chr) { Any argv[20]; int argc = 0; int code = t->table[valInt(chr)]; if ( code & UC ) argv[argc++] = NAME_uppercaseLetter; if ( code & LC ) argv[argc++] = NAME_lowercaseLetter; if ( code & DI ) argv[argc++] = NAME_digit; if ( code & WS ) argv[argc++] = NAME_wordSeparator; if ( code & SY ) argv[argc++] = NAME_symbol; if ( code & OB ) argv[argc++] = NAME_openBracket; if ( code & CB ) argv[argc++] = NAME_closeBracket; if ( code & EL ) argv[argc++] = NAME_endOfLine; if ( code & BL ) argv[argc++] = NAME_whiteSpace; if ( code & QT ) argv[argc++] = NAME_stringQuote; if ( code & PU ) argv[argc++] = NAME_punctuation; if ( code & EB ) argv[argc++] = NAME_endOfString; if ( code & CS ) argv[argc++] = NAME_commentStart; if ( code & CE ) argv[argc++] = NAME_commentEnd; switch(argc) { case 0: fail; case 1: answer(argv[0]); default: answer(answerObjectv(ClassChain, argc, argv)); } }
Vector getCopyVector(Vector v) { Vector v2 = answerObjectv(classOfObject(v), valInt(v->size), v->elements); assign(v2, offset, v->offset); answer(v2); }
Any cToPcePointer(void *ptr) { CPointer p = answerObjectv(ClassCPointer, 0, NULL); p->pointer = ptr; return p; }