From c802172ab92da89a8e9a8cc92c47c09f222dacd1 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sun, 10 Aug 2008 12:17:53 +0200 Subject: Add class cluster MLKForm. --- special-symbols.h | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 special-symbols.h (limited to 'special-symbols.h') diff --git a/special-symbols.h b/special-symbols.h new file mode 100644 index 0000000..2e80bf7 --- /dev/null +++ b/special-symbols.h @@ -0,0 +1,114 @@ +/* -*- mode: objc; coding: utf-8 -*- */ +/* Toilet Lisp, a Common Lisp subset for the Étoilé runtime. + * Copyright (C) 2008 Matthias Andreas Benkard. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#import "MLKSymbol.h" +#import "MLKPackage.h" + +static MLKPackage *cl; +static MLKPackage *sys; +static MLKPackage *keyword; + +static MLKSymbol *IF; +static MLKSymbol *IN_PACKAGE; +static MLKSymbol *DECLARE; +static MLKSymbol *PROGN; +static MLKSymbol *TAGBODY; +static MLKSymbol *GO; +static MLKSymbol *CATCH; +static MLKSymbol *THROW; +static MLKSymbol *_FLET; +static MLKSymbol *_MACROLET; +static MLKSymbol *LAMBDA; +static MLKSymbol *LET; +static MLKSymbol *LOCALLY; +static MLKSymbol *APPLY; +static MLKSymbol *FUNCALL; +static MLKSymbol *FUNCTION; +static MLKSymbol *EVAL; +static MLKSymbol *EVAL_WHEN; +static MLKSymbol *QUOTE; +static MLKSymbol *SETQ; +static MLKSymbol *SETF; +static MLKSymbol *SET; +static MLKSymbol *_FSETQ; +static MLKSymbol *_FSET; +static MLKSymbol *SYMBOL_MACROLET; +static MLKSymbol *PROGV; +static MLKSymbol *UNWIND_PROTECT; +static MLKSymbol *VALUES; +static MLKSymbol *_DEFMACRO; +static MLKSymbol *_FOREIGN_LAMBDA; +static MLKSymbol *_LAMBDA; +static MLKSymbol *_LOOP; +static MLKSymbol *V_INITP; +static MLKSymbol *COMPILE_TOPLEVEL; +static MLKSymbol *COMPILE; +static MLKSymbol *LOAD_TOPLEVEL; +static MLKSymbol *LOAD; +static MLKSymbol *EXECUTE; +static MLKSymbol *MULTIPLE_VALUE_CALL; + + +static void +ensure_symbols () +{ + cl = [MLKPackage findPackage:@"COMMON-LISP"]; + sys = [MLKPackage findPackage:@"TOILET-SYSTEM"]; + keyword = [MLKPackage findPackage:@"KEYWORD"]; + + IF = [cl intern:@"IF"]; + IN_PACKAGE = [cl intern:@"IN-PACKAGE"]; + DECLARE = [cl intern:@"DECLARE"]; + PROGN = [cl intern:@"PROGN"]; + TAGBODY = [cl intern:@"TAGBODY"]; + GO = [cl intern:@"GO"]; + CATCH = [cl intern:@"CATCH"]; + THROW = [cl intern:@"THROW"]; + LAMBDA = [cl intern:@"LAMBDA"]; + LET = [cl intern:@"LET"]; + LOCALLY = [cl intern:@"LOCALLY"]; + _FLET = [sys intern:@"%FLET"]; + _MACROLET = [sys intern:@"%MACROLET"]; + _LOOP = [sys intern:@"%LOOP"]; + APPLY = [cl intern:@"APPLY"]; + EVAL = [cl intern:@"EVAL"]; + EVAL_WHEN = [cl intern:@"EVAL-WHEN"]; + FUNCALL = [cl intern:@"FUNCALL"]; + FUNCTION = [cl intern:@"FUNCTION"]; + QUOTE = [cl intern:@"QUOTE"]; + SETQ = [cl intern:@"SETQ"]; + SETF = [cl intern:@"SETF"]; + SET = [cl intern:@"SET"]; + _FSETQ = [sys intern:@"%FSETQ"]; + _FSET = [sys intern:@"%FSET"]; + SYMBOL_MACROLET = [cl intern:@"SYMBOL-MACROLET"]; + PROGV = [cl intern:@"PROGV"]; + VALUES = [cl intern:@"VALUES"]; + UNWIND_PROTECT = [cl intern:@"UNWIND-PROTECT"]; + _DEFMACRO = [sys intern:@"%DEFMACRO"]; + _FOREIGN_LAMBDA = [sys intern:@"%FOREIGN-LAMBDA"]; + _LAMBDA = [sys intern:@"%LAMBDA"]; + V_INITP = [sys intern:@"*SYSTEM-INITIALISED-P*"]; + MULTIPLE_VALUE_CALL = [cl intern:@"MULTIPLE-VALUE-CALL"]; + + COMPILE_TOPLEVEL = [keyword intern:@"COMPILE-TOPLEVEL"]; + COMPILE = [cl intern:@"COMPILE"]; + LOAD_TOPLEVEL = [keyword intern:@"LOAD-TOPLEVEL"]; + LOAD = [cl intern:@"LOAD"]; + EXECUTE = [keyword intern:@"EXECUTE"]; +} -- cgit v1.2.3