/[gcl]/gcl/o/sequence.d
ViewVC logotype

Diff of /gcl/o/sequence.d

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by wfs, Mon Dec 6 22:44:13 1999 UTC revision 1.2 by camm, Sat Jul 20 07:10:56 2002 UTC
# Line 30  Foundation, 675 Mass Ave, Cambridge, MA Line 30  Foundation, 675 Mass Ave, Cambridge, MA
30    
31  #define endp(obje)      ((enum type)((endp_temp = (obje))->d.t) == t_cons ? \  #define endp(obje)      ((enum type)((endp_temp = (obje))->d.t) == t_cons ? \
32                           FALSE : endp_temp == Cnil ? TRUE : \                           FALSE : endp_temp == Cnil ? TRUE : \
33                           (bool)FEwrong_type_argument(sLlist, endp_temp))                           (FEwrong_type_argument(sLlist, endp_temp),FALSE))
34    
35  object endp_temp;  object endp_temp;
36    
# Line 42  alloc_simple_vector(l, aet) Line 42  alloc_simple_vector(l, aet)
42  int l;  int l;
43  enum aelttype aet;  enum aelttype aet;
44  {  {
         object endp_temp;  
   
45          object x;          object x;
46    
47          x = alloc_object(t_vector);          x = alloc_object(t_vector);
# Line 73  int l; Line 71  int l;
71          return(x);          return(x);
72  }  }
73    
74    void
75  Lelt()  Lelt()
76  {  {
77          check_arg(2);          check_arg(2);
78          vs_base[0] = elt(vs_base[0], fixint(vs_base[1]));          vs_base[0] = elt(vs_base[0], fixint(vs_base[1]));
79          vs_pop;          vs_popp;
80  }  }
81    
82  object  object
# Line 124  int index; Line 123  int index;
123  E:  E:
124          vs_push(make_fixnum(index));          vs_push(make_fixnum(index));
125          FEerror("The index, ~D, is too large", 1, vs_head);          FEerror("The index, ~D, is too large", 1, vs_head);
126            return(Cnil);
127  }  }
128    
129    void
130  siLelt_set()  siLelt_set()
131  {  {
132          check_arg(3);          check_arg(3);
133          vs_base[0] = elt_set(vs_base[0], fixint(vs_base[1]), vs_base[2]);          vs_base[0] = elt_set(vs_base[0], fixint(vs_base[1]), vs_base[2]);
134          vs_pop;          vs_popp;
135          vs_pop;          vs_popp;
136  }  }
137    
138  object  object
# Line 182  object val; Line 183  object val;
183  E:  E:
184          vs_push(make_fixnum(index));          vs_push(make_fixnum(index));
185          FEerror("The index, ~D, is too large", 1, vs_head);          FEerror("The index, ~D, is too large", 1, vs_head);
186            return(Cnil);  
187  }  }
188    
189  @(defun subseq (sequence start &optional end &aux x)  @(defun subseq (sequence start &optional end &aux x)
# Line 311  ILLEGAL_START_END: Line 313  ILLEGAL_START_END:
313  for the sequence ~S.", 3, start, end, sequence);  for the sequence ~S.", 3, start, end, sequence);
314  @)  @)
315    
316    void
317  Lcopy_seq()  Lcopy_seq()
318  {  {
319          check_arg(1);          check_arg(1);
# Line 322  int Line 325  int
325  length(x)  length(x)
326  object x;  object x;
327  {  {
         object endp_temp;  
   
328          int i;          int i;
329    
330          switch (type_of(x)) {          switch (type_of(x)) {
# Line 331  object x; Line 332  object x;
332                  if (x == Cnil)                  if (x == Cnil)
333                          return(0);                          return(0);
334                  FEwrong_type_argument(sLsequence, x);                  FEwrong_type_argument(sLsequence, x);
335                    return(0);
336          case t_cons:          case t_cons:
337    
338  #define cendp(obj) ((type_of(obj)!=t_cons))  #define cendp(obj) ((type_of(obj)!=t_cons))
# Line 339  object x; Line 340  object x;
340                          ;                          ;
341                  if (x==Cnil) return(i);                  if (x==Cnil) return(i);
342                  FEwrong_type_argument(sLlist,x);                  FEwrong_type_argument(sLlist,x);
343                    return(0);
344    
345    
346          case t_vector:          case t_vector:
# Line 348  object x; Line 350  object x;
350    
351          default:          default:
352                  FEwrong_type_argument(sLsequence, x);                  FEwrong_type_argument(sLsequence, x);
353                    return(0);
354          }          }
355  }  }
356    
357    void
358  Llength()  Llength()
359  {  {
360          check_arg(1);          check_arg(1);
361          vs_base[0] = make_fixnum(length(vs_base[0]));          vs_base[0] = make_fixnum(length(vs_base[0]));
362  }  }
363    
364    void
365  Lreverse()  Lreverse()
366  {  {
367          check_arg(1);          check_arg(1);
# Line 447  object seq; Line 452  object seq;
452    
453          default:          default:
454                  FEwrong_type_argument(sLsequence, seq);                  FEwrong_type_argument(sLsequence, seq);
455                    return(Cnil);
456          }          }
457  }  }
458    
459    void
460  Lnreverse()  Lnreverse()
461  {  {
462          check_arg(1);          check_arg(1);
# Line 552  object seq; Line 559  object seq;
559    
560          default:          default:
561                  FEwrong_type_argument(sLsequence, seq);                  FEwrong_type_argument(sLsequence, seq);
562                    return(Cnil);
563          }          }
564  }  }
565    
566    
567    void
568  init_sequence_function()  init_sequence_function()
569  {  {
570          make_function("ELT", Lelt);          make_function("ELT", Lelt);

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26