source: branches/0.17.x/abcl/src/org/armedbear/lisp/cxr.java

Last change on this file was 12254, checked in by ehuelsmann, 16 years ago

Remove 'throws ConditionThrowable?' method annotations:

it's an unchecked exception now, so no need to declare it thrown.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.1 KB
Line 
1/*
2 * cxr.java
3 *
4 * Copyright (C) 2003-2005 Peter Graves
5 * $Id: cxr.java 12254 2009-11-06 20:07:54Z ehuelsmann $
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 *
21 * As a special exception, the copyright holders of this library give you
22 * permission to link this library with independent modules to produce an
23 * executable, regardless of the license terms of these independent
24 * modules, and to copy and distribute the resulting executable under
25 * terms of your choice, provided that you also meet, for each linked
26 * independent module, the terms and conditions of the license of that
27 * module.  An independent module is a module which is not derived from
28 * or based on this library.  If you modify this library, you may extend
29 * this exception to your version of the library, but you are not
30 * obligated to do so.  If you do not wish to do so, delete this
31 * exception statement from your version.
32 */
33
34package org.armedbear.lisp;
35
36public final class cxr extends Lisp
37{
38  // ### set-car
39  private static final Primitive SET_CAR =
40    new Primitive("set-car", PACKAGE_SYS, true)
41    {
42      @Override
43      public LispObject execute(LispObject first, LispObject second)
44
45      {
46        first.setCar(second);
47        return second;
48      }
49    };
50
51  // ### set-cdr
52  private static final Primitive SET_CDR =
53    new Primitive("set-cdr", PACKAGE_SYS, true)
54    {
55      @Override
56      public LispObject execute(LispObject first, LispObject second)
57
58      {
59        first.setCdr(second);
60        return second;
61      }
62    };
63
64  // ### car
65  private static final Primitive CAR = new Primitive(Symbol.CAR, "list")
66    {
67      @Override
68      public LispObject execute(LispObject arg)
69      {
70        return arg.car();
71      }
72    };
73
74  // ### cdr
75  private static final Primitive CDR = new Primitive(Symbol.CDR, "list")
76    {
77      @Override
78      public LispObject execute(LispObject arg)
79      {
80        return arg.cdr();
81      }
82    };
83
84  // ### caar
85  private static final Primitive CAAR = new Primitive(Symbol.CAAR, "list")
86    {
87      @Override
88      public LispObject execute(LispObject arg)
89      {
90        return arg.car().car();
91      }
92    };
93
94  // ### cadr
95  private static final Primitive CADR = new Primitive(Symbol.CADR, "list")
96    {
97      @Override
98      public LispObject execute(LispObject arg)
99      {
100        return arg.cadr();
101      }
102    };
103
104  // ### cdar
105  private static final Primitive CDAR = new Primitive(Symbol.CDAR, "list")
106    {
107      @Override
108      public LispObject execute(LispObject arg)
109      {
110        return arg.car().cdr();
111      }
112    };
113
114  // ### cddr
115  private static final Primitive CDDR = new Primitive(Symbol.CDDR, "list")
116    {
117      @Override
118      public LispObject execute(LispObject arg)
119      {
120        return arg.cdr().cdr();
121      }
122    };
123
124  // ### caddr
125  private static final Primitive CADDR = new Primitive(Symbol.CADDR, "list")
126    {
127      @Override
128      public LispObject execute(LispObject arg)
129      {
130        return arg.caddr();
131      }
132    };
133
134  // ### caadr
135  private static final Primitive CAADR = new Primitive(Symbol.CAADR, "list")
136    {
137      @Override
138      public LispObject execute(LispObject arg)
139      {
140        return arg.cdr().car().car();
141      }
142    };
143
144  // ### caaar
145  private static final Primitive CAAAR = new Primitive(Symbol.CAAAR, "list")
146    {
147      @Override
148      public LispObject execute(LispObject arg)
149      {
150        return arg.car().car().car();
151      }
152    };
153
154  // ### cdaar
155  private static final Primitive CDAAR = new Primitive(Symbol.CDAAR, "list")
156    {
157      @Override
158      public LispObject execute(LispObject arg)
159      {
160        return arg.car().car().cdr();
161      }
162    };
163
164  // ### cddar
165  private static final Primitive CDDAR = new Primitive(Symbol.CDDAR, "list")
166    {
167      @Override
168      public LispObject execute(LispObject arg)
169      {
170        return arg.car().cdr().cdr();
171      }
172    };
173
174  // ### cdddr
175  private static final Primitive CDDDR = new Primitive(Symbol.CDDDR, "list")
176    {
177      @Override
178      public LispObject execute(LispObject arg)
179      {
180        return arg.cdr().cdr().cdr();
181      }
182    };
183
184  // ### cadar
185  private static final Primitive CADAR = new Primitive(Symbol.CADAR, "list")
186    {
187      @Override
188      public LispObject execute(LispObject arg)
189      {
190        return arg.car().cdr().car();
191      }
192    };
193
194  // ### cdadr
195  private static final Primitive CDADR = new Primitive(Symbol.CDADR, "list")
196    {
197      @Override
198      public LispObject execute(LispObject arg)
199      {
200        return arg.cdr().car().cdr();
201      }
202    };
203
204  // ### first
205  private static final Primitive FIRST = new Primitive(Symbol.FIRST, "list")
206    {
207      @Override
208      public LispObject execute(LispObject arg)
209      {
210        return arg.car();
211      }
212    };
213
214  // ### second
215  private static final Primitive SECOND = new Primitive(Symbol.SECOND, "list")
216    {
217      @Override
218      public LispObject execute(LispObject arg)
219      {
220        return arg.cadr();
221      }
222    };
223
224  // ### third
225  private static final Primitive THIRD = new Primitive(Symbol.THIRD, "list")
226    {
227      @Override
228      public LispObject execute(LispObject arg)
229      {
230        return arg.caddr();
231      }
232    };
233
234  // ### fourth
235  private static final Primitive FOURTH = new Primitive(Symbol.FOURTH, "list")
236    {
237      @Override
238      public LispObject execute(LispObject arg)
239      {
240        return arg.cdr().cdr().cadr();
241      }
242    };
243
244  // ### rest
245  private static final Primitive REST = new Primitive(Symbol.REST, "list")
246    {
247      @Override
248      public LispObject execute(LispObject arg)
249      {
250        return arg.cdr();
251      }
252    };
253}
Note: See TracBrowser for help on using the repository browser.