#include errno.h

extern int errno;

double errcheck;

double Log(x)

 double x;

{

 return errcheck(log(x), "log");

}

double Log10(x)

 double x;

{

 return errcheck(log10(x), "log10");

}

double Sqrt(x)

 double x;

{

 return errcheck(sqrt(x), "sqrt");

}

double Exp(x)

 double x;

{

 return errcheck(exp(x), "exp");

}

double Pow(x, y)

 double x, y;

{

 return errcheck(pow(x,y), "exponentiation");

}

double integer(x)

 double x;

{

 return (double)(long)x;

}

double errcheck(d, s) /* check result of library call */

 double d;

 char *s;

{

 if (errno == EDOM) {

  errno = 0;

  execerror(s, "argument out of domain");

 } else if (errno == ERANGE) {

  errno = 0;

  execerror(s, "result out of range");

 }

 return d;

}

<p>3.7.19 <code>mbox</code></p>

From: Polyhedron Software Ltd 100013.461@CompuServe.COM

To: "INTERNET:bwk@research.att.com" bwk@research.att.com

Subject: Message from Internet

Date: 10 May 91 04:07:07 EDT

Message-Id: "910510080707 100013.461 CHE27-1"@CompuServe.COM

Got your message. I'll pass it on to Tony. We haven't noticed any

errors at all in CompuServe mail, so far.

Regards

Graham Wood

From kam Thu May 9 10:58:06 EDT 1991

tony fritzpatrick called from england. he had spoken to you

last week about compuserve.

the number is:

100013,461

this is regarding the HOC6 listing.

he will call you back tomorrow

From pipe!subll276 Fri May 3 10:38:29 EDT 1991

Message to: BK

From: Tony Fitzpatrick

ECL

Highlands Farm

Greys Road

Henley OXON, RG 94 PS

ENGLAND

Telephone: 0491 - 575-989 (country code 45)

FAX: 0491 576 557

1. H would like permission

   (which has already been granted by publisher) to

   use HUC 6 program — commercial software.

2. Is the listing available on floppy disk?

3. Thank you for a very interesting and useful book.

4. He left his fax # and telephone #. He wasn't sure of the country code.

   He would appreciate hearing from you via fax.

sub 11276

<p>3.7.20 <code>symbol.c</code></p>

#include "hoc.h"

#include "y.tab.h"

static Symbol *symlist =0; /* symbol table: linked list */

Symbol *lookup(s) /* find s in symbol table */

 char *s;

{

 Symbol *sp;

 for (sp = symlist; sp != (Symbol*)0; sp = sp-next)

  if (strcmp(sp-name, s) == 0)

   return sp;

 return 0; /* 0 == not found */

}

Symbol *install(s, t, d) /* install s in symbol table */

 char *s;

 int t;

 double d;

{

 Symbol *sp;

 char *emalloc;

 sp = (Symbol*)emalloc(sizeof(Symbol));

 sp-name = emalloc(strlen(s)+1); /* +1 for '\0' */

 strcpy(sp-name, s);

 sp-type = t;

 sp-u.val = d;

 sp-next = symlist; /* put at front of list */

 symlist = sp;

 return sp;

}

char *emalloc(n) /* check return from malloc */

 unsigned n;

{

 char *p, *malloc;

 p = malloc(n);

 if (p == 0)

  execerror("out of memory", (char*)0);

 return p;

}

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже