#include "stdio.h"
#include "proto.h"
#include "ring.h"
void manpage(char*,char*,char*);
//-------------------------------------------
#define z1 "4711"
#define z2 "4712"
#define z3 "4713"
#define z4 "4714"
//--------------------------------------
#define TRUE 1
#define FALSE 0
//--------------------------------------
#define NAT NATURAL
#define ZERO "0"
#define ONE "1"
#define TWO "2"
#define THREE "3"
#define FOUR "4"
#define FIVE "5"
#define SEVEN "7"
#define NINE "9"
#define ELEVEN "11"
#define THIRTEEN "13"
//--------------------------------------
#define ERROR(bug) ERROR_##bug
#define ERROR_IS error(+"last branch must be RESULT"+);
#define ERROR_NOTIS
//--------------------------------------
#define BOOLFUN1(f,p1,mand, mane) \
void MAN##f(void) {manpage(#p1,mand,mane);} \
BOOL f(NAT p1) { \
BOOL erg=FALSE; long funlevel=level; \
startout(#f);startout(p1); {
//--------------------------------------
#define BOOLFUN2(f,p1,p2,mand, mane) \
void MAN##f(void) {manpage(#p1" "#p2,mand, mane);} \
BOOL f(NAT p1, NAT p2) { \
BOOL erg=FALSE; long funlevel=level; \
startout(#f);argout(p1);argout(p2); {
//--------------------------------------
#define BOOLFUN3(f,p1,p2,p3,mane, mand) \
void MAN##f(void) {manpage(#p1" "#p2" "#p3,mane, mand);} \
BOOL f(NAT p1,NAT p2,NAT p3) { \
BOOL erg=FALSE; long funlevel=level; \
startout(#f);argout(p1);argout(p2);argout(p3); {
//--------------------------------------
#define NATFUN1(f,p1,mane, mand) \
void MAN##f(void) {manpage(#p1,mane, mand);} \
NAT f(NAT p1) { \
NAT erg=ZERO; long funlevel=level; \
startout(#f);argout(p1); {
//--------------------------------------
#define NATFUN2(f,p1,p2,mane, mand) \
void MAN##f(void) {manpage(#p1" "#p2,mane, mand);} \
NAT f(NAT p1, NAT p2) { \
NAT erg=ZERO; long funlevel=level; \
startout(#f);argout(p1);argout(p2); {
//--------------------------------------
#define NATFUN3(f,p1,p2,p3,mane, mand) \
void MAN##f(void) {manpage(#p1" "#p2" "#p3,mane, mand);} \
NAT f(NAT p1,NAT p2,NAT p3) { \
NAT erg=ZERO; long funlevel=level; \
startout(#f);argout(p1);argout(p2);argout(p3); {
//--------------------------------------
#define NATFUN4(f,p1,p2,p3,p4,mane, mand) \
void MAN##f(void) {manpage(#p1" "#p2" "#p3" "#p4,mane, mand);} \
NAT f(NAT p1,NAT p2,NAT p3,NAT p4) { \
NAT erg=ZERO; long funlevel=level; \
startout(#f);argout(p1);argout(p2);argout(p3);argout(p4); {
//--------------------------------------
#define CASE(c,r) \
if(c) RESULT(r)
//--------------------------------------
#define FIN }\
if (trace) printf("\t\t *failed");\
level=funlevel; \
return 0;}
//--------------------------------------
#define RESULT(res) \
{if (trace) printf("\t\t");traceout(#res,(long)res);return res;}
//--------------------------------------
#define EXISTS(v,low,high,cond,res) \
{NAT v; for(v=low;Le(v,high);v=Add(v,ONE)) { \
if (cond) RESULT(res)}}
//--------------------------------------
#define FORALL(v,low,high) {NAT v;for (v=low;Le(v,high);v++) {
//--------------------------------------
#define ENDFOR }}
//--------------------------------------
#define AC(c) if (argcheck(argc,c))
//--------------------------------------
#define P1(f) {initcall(#f);resultout((long)f(args[1]));}
#define P2(f) {initcall(#f);resultout((long)f(args[1],args[2]));}
#define P3(f) {initcall(#f);resultout((long)f(args[1],args[2],args[3]));}
#define P4(f) {initcall(#f);resultout((long)f(args[1],args[2],args[3],args[4]));}
#define MDN(f,n) (comp(args[0],"man")&&comp(args[1],#f#n))
#define MD(f) (comp(args[0],"man")&&comp(args[1],#f))
#define MP1(f) if (comp(args[0],"man")) MAN##f(); else {AC(1) P1(f)}
#define MP2(f) if (comp(args[0],"man")) MAN##f(); else {AC(2) P2(f)}
#define MP3(f) if (comp(args[0],"man")) MAN##f(); else {AC(3) P3(f)}
#define MP4(f) if (comp(args[0],"man")) MAN##f(); else {AC(4) P4(f)}
//--------------------------------------
#define C1(f) else if (comp(args[0],#f)|MD(f)) {MP1(f)}
#define C2(f) else if (comp(args[0],#f)|MD(f)) {MP2(f)}
#define C3(f) else if (comp(args[0],#f)|MD(f)) {MP3(f)}
#define C4(f) else if (comp(args[0],#f)|MD(f)) {MP4(f)}
#define CN(f,n) else if (MDN(f,n)) MAN##f##n(f##n); \
else if (MD(f)) MAN##f##n(f##n); \
else if (comp(args[0],#f)&&(argc==n+1)) P##n(f##n)
//--------------------------------------
NAT Add(NAT,NAT);
NAT Sub(NAT,NAT);
NAT Mul(NAT,NAT);
NAT Div(NAT,NAT);
NAT Pow(NAT,NAT);
NAT Mod(NAT,NAT);
NAT Pair(NAT,NAT);
NAT Norm(NAT);
//--------------------------------------
BOOL Eq(NAT,NAT);
BOOL Ne(NAT,NAT);
BOOL Gt(NAT,NAT);
BOOL Ge(NAT,NAT);
BOOL Lt(NAT,NAT);
BOOL Le(NAT,NAT);
BOOL Loop(NAT,NAT);
//--------------------------------------
BOOL And(BOOL,BOOL);
BOOL Or(BOOL,BOOL);
BOOL Not(BOOL);
//--------------------------------------
// End of this Source
//--------------------------------------
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|