Куча говна / Говнокод #25831 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
static F1(jtdrr){PROLOG(0055);A df,dg,hs,*x,z;B b,ex,xop;C c,id;I fl,*hv,m;V*v;
 RZ(w);
 // If the input is a name, it must be from "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="567816">[email protected]</a>'name' which turned into "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ca2cc">[email protected]</a>(name+noun)  - or in debug, but that's discarded
 if(AT(w)&NAME){RZ(w=sfn(0,w));}
 // If noun, return the value of the noun.
 if(AT(w)&NOUN)R w;  // no quotes needed
 // Non-nouns and NMDOT names carry on
 v=FAV(w); id=v->id; fl=v->flag;
 I fndx=(id==CBDOT)&&!v->fgh[0]; A fs=v->fgh[fndx]; A gs=v->fgh[fndx^1];  // In verb for m b., if f is empty look to g for the left arg.  It would be nice to be more general
 hs=v->fgh[2]; if(id==CBOX)gs=0;  // ignore gs field in BOX, there to simulate BOXATOP
 if(fl&VXOPCALL)R drr(hs);
 xop=1&&VXOP&fl; ex=id==CCOLON&&hs&&!xop;
 b=id==CHOOK||id==CADVF; c=id==CFORK;
 m=!!fs+(gs||ex);
 if(!m)R spella(w);
 if(evoke(w))R drr(sfne(w));  // turn nameref into string or verb; then take rep
 if(fs)RZ(df=fl&VGERL?every(fxeach(fs),0L,jtdrr):drr(fs));
 if(gs)RZ(dg=fl&VGERR?every(fxeach(gs),0L,jtdrr):drr(gs));
 if(ex)RZ(dg=unparsem(num[0],w));
 m+=!b&&!xop||hs&&xop;
 GATV0(z,BOX,m,1); x=AAV(z);
 RZ(x[0]=rifvs(df));
 RZ(x[1]=rifvs(b||c||xop?dg:fl&VDDOP?(hv=AV(hs),link(sc(hv[0]),link(spellout(id),sc(hv[1])))):spellout(id)));
 if(2<m)RZ(x[2]=rifvs(c||xop?drr(hs):dg));
 EPILOG(z);
}

F1(jtdrep){A z=drr(w); R z&&AT(z)&BOX?z:ravel(box(z));}


F1(jtaro){A fs,gs,hs,s,*u,*x,y,z;B ex,xop;C id;I*hv,m;V*v;
 RZ(w);
 if(FUNC&AT(w)){
  v=FAV(w); id=v->id;
  I fndx=(id==CBDOT)&&!v->fgh[0]; fs=v->fgh[fndx]; gs=v->fgh[fndx^1];  // In verb for m b., if f is empty look to g for the left arg.  It would be nice to be more general
  hs=v->fgh[2]; if(id==CBOX)gs=0;  // ignore gs field in BOX, there to simulate BOXATOP
  if(VXOPCALL&v->flag)R aro(hs);
  xop=1&&VXOP&v->flag;
  ex=hs&&id==CCOLON&&!xop;
  m=id==CFORK?3:!!fs+(ex||xop&&hs||!xop&&gs);
  if(!m)R spella(w);
  if(evoke(w)){RZ(w=sfne(w)); if(FUNC&AT(w))w=aro(w); R w;}  // keep nameref as a string, UNLESS it is NMDOT, in which case use the (f.'d) verb value
 }
 GAT0(z,BOX,2,1); x=AAV(z);
 if(NOUN&AT(w)){RZ(x[0]=rifvs(ravel(scc(CNOUN)))); if(AT(w)&NAME)RZ(w=sfn(0,w)); x[1]=INCORPNA(w); RETF(z);}  // if name, must be "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="785638">[email protected]</a>'name', format name as string
 GATV0(y,BOX,m,1); u=AAV(y);
 if(0<m)RZ(u[0]=rifvs(aro(fs)));
 if(1<m)RZ(u[1]=rifvs(aro(ex?unparsem(num[0],w):xop?hs:gs)));
 if(2<m)RZ(u[2]=rifvs(aro(hs)));
 s=xop?aro(gs):VDDOP&v->flag?(hv=AV(hs),aro(foreign(sc(hv[0]),sc(hv[1])))):spellout(id);
 RZ(x[0]=rifvs(s)); x[1]=INCORPNA(y);
 R z;
}

F1(jtarep){R box(aro(w));}

// Create A for a string - name~, a primitive, or the boxed string
static DF1(jtfxchar){A y;C c,d,id,*s;I m,n;
 n=AN(w);
 ASSERT(1>=AR(w),EVRANK);  // string must be an atom or list
 ASSERT(n,EVLENGTH);
 s=CAV(w); c=*(s+n-1);
 DO(n, d=s[i]; ASSERT((C)(d-32)<(C)(127-32),EVSPELL););  // must be all ASCII
 if(CA==ctype[(UC)*s]&&c!=CESC1&&c!=CESC2)R swap(w);  // If name and not control word, treat as name~, create nameref
 ASSERT(id=spellin(n,s),EVSPELL);  // not name, must be control word or primitive.  Also classify string 
 if(id!=CFCONS)y=ds(id); else{m=s[n-2]-'0'; y=FCONS(CSIGN!=*s?scib(m):2==n?ainf:scib(-m));} // define 0:, if it's that, using boolean for 0/1
 ASSERT(y&&RHS&AT(y),EVDOMAIN);   // make sure it's a noun/verb/adv/conj
 if(!self || AT(y)

Запостил: Arbatan_Pokrovan Arbatan_Pokrovan, (Updated )

Комментарии (31) RSS

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8