annotate a.h @ 0:e0bbaa717f41 draft default tip

lol J
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Mon, 25 Nov 2013 11:56:30 -0500 (2013-11-25)
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 /* Copyright 1990-2011, Jsoftware Inc. All rights reserved. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2 /* License in license.txt. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 /* */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4 /* Adverbs: Macros and Defined-Constants (for Adverbs and Conjunctions) */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7 #define GAPPEND (I)0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8 #define GINSERT (I)3
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 #define GTRAIN (I)6
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11 #define COMPOSE(c) ((c)==CAT||(c)==CATCO||(c)==CAMP||(c)==CAMPCO)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 #define CONJCASE(a,w) (2*!(VERB&AT(a))+!(VERB&AT(w)))
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14 #define NN 3 /* NOUN NOUN */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 #define NV 2 /* NOUN VERB */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16 #define VN 1 /* VERB NOUN */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17 #define VV 0 /* VERB VERB */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
19 #define DECLF V*sv=VAV(self);A fs=sv->f; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
20 AF f1=fs?VAV(fs)->f1:0,f2=fs?VAV(fs)->f2:0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
21
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
22 #define DECLG V*sv=VAV(self);A gs=sv->g; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
23 AF g1=gs?VAV(gs)->f1:0,g2=gs?VAV(gs)->f2:0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
24
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
25 #define DECLFG DECLF; A gs=sv->g; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
26 AF g1=gs?VAV(gs)->f1:0,g2=gs?VAV(gs)->f2:0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
27
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28 #define DECLFGH DECLFG; A hs=sv->h; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 AF h1=hs?VAV(hs)->f1:0,h2=hs?VAV(hs)->f2:0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
30
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31 #define PREF1(f) {I m=mr(self); F1RANK( m,f,self);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32 #define PREF2(f) {I l=lr(self),r=rr(self); F2RANK(l,r,f,self);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34 #define AS1(f,exp) DF1(f){PROLOG;DECLF ;A z; PREF1(f); z=(exp); EPILOG(z);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35 #define AS2(f,exp) DF2(f){PROLOG;DECLF ;A z; PREF2(f); z=(exp); EPILOG(z);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36 #define CS1(f,exp) DF1(f){PROLOG;DECLFG;A z; PREF1(f); z=(exp); EPILOG(z);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
37 #define CS2(f,exp) DF2(f){PROLOG;DECLFG;A z; PREF2(f); z=(exp); EPILOG(z);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39 #define ADERIV(id,f1,f2,m,l,r) fdef(id,VERB,(AF)(f1),(AF)(f2),w,0L,0L,0L,(I)(m),(I)(l),(I)(r))
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40 #define CDERIV(id,f1,f2,m,l,r) fdef(id,VERB,(AF)(f1),(AF)(f2),a,w ,0L,0L,(I)(m),(I)(l),(I)(r))
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
41
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
42 #define ASSERTVV(a,w) RZ(a&&w); ASSERT(VERB&AT(a)&&VERB&AT(w),EVDOMAIN)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
43 #define ASSERTVN(a,w) RZ(a&&w); ASSERT(VERB&AT(a)&&NOUN&AT(w),EVDOMAIN)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
44 #define ASSERTNN(a,w) RZ(a&&w); ASSERT(NOUN&AT(a)&&NOUN&AT(w),EVDOMAIN)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
45
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
46 #define SCALARFN(id,w) (id==ID(w)&&!lr(w)&&!rr(w))
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
47
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
48 #define FIT0(c,v) (CFIT==v->id&&c==ID(v->f)&&equ(zero,v->g))