More strict checks...

This commit is contained in:
Manoel Trapier 2013-03-18 18:58:21 +01:00 committed by Manoël Trapier
parent a8d9183e25
commit 2bbd5a38de
87 changed files with 473 additions and 537 deletions

View File

@ -11,6 +11,14 @@
void C_flush(); void C_flush();
void C_internal_error(); void C_internal_error();
void C_putbyte(int c);
#ifndef arith
#define arith long
#endif
#ifndef label
#define label unsigned int
#endif
_PROTOTYPE(void C_ms_com, (char *)); _PROTOTYPE(void C_ms_com, (char *));
_PROTOTYPE(void C_ms_ego, (int, arith, arith, int)); _PROTOTYPE(void C_ms_ego, (int, arith, arith, int));

View File

@ -3,5 +3,9 @@
* See the copyright notice in the ACK home directory, in the file "Copyright". * See the copyright notice in the ACK home directory, in the file "Copyright".
*/ */
/* $Id$ */ /* $Id$ */
#ifndef H_LABEL_H
#define H_LABEL_H
#define label unsigned int #define label unsigned int
#endif /* H_LABEL_H */

View File

@ -1,4 +1,5 @@
#include <stdlib.h> #include <stdlib.h>
#include "em_code.h"
#include "em_arith.h" #include "em_arith.h"
#include "em_label.h" #include "em_label.h"
#include "../read_em/em_comp.h" #include "../read_em/em_comp.h"

View File

@ -1,12 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhcst(int op, arith n, arith w, int i)
CC_bhcst(op, n, w, i)
arith n;
arith w;
int i;
{ {
/* BSS or HOL with size n, initial value a cst w, and flag i /* BSS or HOL with size n, initial value a cst w, and flag i
*/ */

View File

@ -1,13 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhdlb(int op, arith n, label s, arith off, int i)
CC_bhdlb(op, n, s, off, i)
arith n;
label s;
arith off;
int i;
{ {
/* BSS or HOL with size n, initial value a dlb(s, off), /* BSS or HOL with size n, initial value a dlb(s, off),
and flag i and flag i

View File

@ -1,13 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhdnam(int op, arith n, char *s, arith off, int i)
CC_bhdnam(op, n, s, off, i)
arith n;
char *s;
arith off;
int i;
{ {
/* BSS or HOL with size n, initial value a dnam(s, off), /* BSS or HOL with size n, initial value a dnam(s, off),
and flag i and flag i

View File

@ -1,13 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhfcon(int op, arith n, char *s, arith sz, int i)
CC_bhfcon(op, n, s, sz, i)
arith n;
char *s;
arith sz;
int i;
{ {
/* BSS or HOL with size n, initial value an FCON (s, sz), /* BSS or HOL with size n, initial value an FCON (s, sz),
and flag i and flag i

View File

@ -1,13 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhicon(int op, arith n, char *s, arith sz, int i)
CC_bhicon(op, n, s, sz, i)
arith n;
char *s;
arith sz;
int i;
{ {
/* BSS or HOL with size n, initial value an ICON (s, sz), /* BSS or HOL with size n, initial value an ICON (s, sz),
and flag i and flag i

View File

@ -1,12 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhilb(int op, arith n, label l, int i)
CC_bhilb(op, n, l, i)
arith n;
label l;
int i;
{ {
/* BSS or HOL with size n, initial value a ILB(l), /* BSS or HOL with size n, initial value a ILB(l),
and flag i and flag i

View File

@ -1,12 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhpnam(int op, arith n, char *p, int i)
CC_bhpnam(op, n, p, i)
arith n;
char *p;
int i;
{ {
/* BSS or HOL with size n, initial value a PNAM(p), /* BSS or HOL with size n, initial value a PNAM(p),
and flag i and flag i

View File

@ -1,13 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_bhucon(int op, arith n, char *s, arith sz, int i)
CC_bhucon(op, n, s, sz, i)
arith n;
char *s;
arith sz;
int i;
{ {
/* BSS or HOL with size n, initial value an UCON (s, sz), /* BSS or HOL with size n, initial value an UCON (s, sz),
and flag i and flag i

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crcst(int op, arith v)
CC_crcst(op, v)
arith v;
{ {
/* CON or ROM with argument CST(v) /* CON or ROM with argument CST(v)
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crdlb(int op, label v, arith off)
CC_crdlb(op, v, off)
label v;
arith off;
{ {
/* CON or ROM with argument DLB(v, off) /* CON or ROM with argument DLB(v, off)
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crdnam(int op, char *s, arith off)
CC_crdnam(op, s, off)
char *s;
arith off;
{ {
/* CON or ROM with argument DNAM(s, off) /* CON or ROM with argument DNAM(s, off)
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crilb(int op, label l)
CC_crilb(op, l)
label l;
{ {
/* CON or ROM with argument ILB(l) /* CON or ROM with argument ILB(l)
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crpnam(int op, char *p)
CC_crpnam(op, p)
char *p;
{ {
/* CON or ROM with argument PNAM(p) /* CON or ROM with argument PNAM(p)
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crscon(int op, char *v, arith s)
CC_crscon(op, v, s)
char *v;
arith s;
{ {
/* CON or ROM with argument SCON(v,z) /* CON or ROM with argument SCON(v,z)
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_crxcon(int op, int spec, char *v, arith s)
CC_crxcon(op, spec, v, s)
char *v;
arith s;
{ {
/* CON or ROM with argument ICON(v,z) /* CON or ROM with argument ICON(v,z)
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_cst(arith l)
CC_cst(l)
arith l;
{ {
COMMA(); COMMA();
CST(l); CST(l);

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_dfdlb(label l)
CC_dfdlb(l)
label l;
{ {
/* Define numeric data label /* Define numeric data label
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_dfdnam(char *s)
CC_dfdnam(s)
char *s;
{ {
/* Define data label /* Define data label
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_dfilb(label l)
CC_dfilb(l)
label l;
{ {
/* Define instruction label /* Define instruction label
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_dlb(label l, arith val)
CC_dlb(l, val)
label l;
arith val;
{ {
COMMA(); COMMA();
DOFF(l, val); DOFF(l, val);

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_dnam(char *str, arith val)
CC_dnam(str, val)
char *str;
arith val;
{ {
COMMA(); COMMA();
NOFF(str, val); NOFF(str, val);

View File

@ -13,6 +13,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "alloc.h" #include "alloc.h"
#include "system.h"
#include "print.h" #include "print.h"
#include "em_arith.h" #include "em_arith.h"
#include "insert.h" #include "insert.h"

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_end(arith l)
CC_end(l)
arith l;
{ {
/* END pseudo of procedure with l locals /* END pseudo of procedure with l locals
*/ */

View File

@ -1,9 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_endnarg()
CC_endnarg()
{ {
/* END pseudo of procedure with unknown # of locals /* END pseudo of procedure with unknown # of locals
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_exc(arith c1, arith c2)
CC_exc(c1,c2)
arith c1,c2;
{ {
PS(ps_exc); PS(ps_exc);
CST(c1); CST(c1);

View File

@ -5,8 +5,7 @@
*/ */
#include <system.h> #include <system.h>
void void C_failed()
C_failed()
{ {
sys_write(STDERR,"read, write, or open failed\n",28); sys_write(STDERR,"read, write, or open failed\n",28);
sys_stop(S_EXIT); sys_stop(S_EXIT);

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_fcon(char *val, arith siz)
CC_fcon(val, siz)
char *val;
arith siz;
{ {
COMMA(); COMMA();
WCON(sp_fcon, val, siz); WCON(sp_fcon, val, siz);

View File

@ -3,8 +3,7 @@
/* Get a unique id for C_insertpart, etc. /* Get a unique id for C_insertpart, etc.
*/ */
int int C_getid()
C_getid()
{ {
static int id = 0; static int id = 0;

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_icon(char *val, arith siz)
CC_icon(val, siz)
char *val;
arith siz;
{ {
COMMA(); COMMA();
WCON(sp_icon, val, siz); WCON(sp_icon, val, siz);

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_ilb(label l)
CC_ilb(l)
label l;
{ {
COMMA(); COMMA();
ILB(l); ILB(l);

View File

@ -5,8 +5,7 @@
*/ */
#include <system.h> #include <system.h>
void void C_internal_error()
C_internal_error()
{ {
sys_write(STDERR,"internal error\n",15); sys_write(STDERR,"internal error\n",15);
sys_stop(S_EXIT); sys_stop(S_EXIT);

View File

@ -1,9 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_msend()
CC_msend()
{ {
CEND(); CEND();
NL(); NL();

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_msstart(int cst)
CC_msstart(cst)
int cst;
{ {
/* start of message /* start of message
*/ */

View File

@ -1,9 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_op(int opcode)
CC_op(opcode)
{ {
/* Instruction that never has an argument /* Instruction that never has an argument
Argument types: - Argument types: -

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_opcst(int opcode, arith cst)
CC_opcst(opcode, cst)
arith cst;
{ {
/* Instruction with a constant argument /* Instruction with a constant argument
Argument types: c, d, l, g, f, n, s, z, o, w, r Argument types: c, d, l, g, f, n, s, z, o, w, r

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_opdlb(int opcode, label dlb, arith offset)
CC_opdlb(opcode, dlb, offset)
label dlb;
arith offset;
{ {
/* Instruction that as a numeric datalabel + offset as argument /* Instruction that as a numeric datalabel + offset as argument
Argument types: g Argument types: g

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_opdnam(int opcode, char *dnam, arith offset)
CC_opdnam(opcode, dnam, offset)
char *dnam;
arith offset;
{ {
/* Instruction that has a datalabel + offset as argument /* Instruction that has a datalabel + offset as argument
Argument types: g Argument types: g

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_opilb(int opcode, label ilb)
CC_opilb(opcode, ilb)
label ilb;
{ {
/* Instruction with instruction label argument /* Instruction with instruction label argument
Argument types: b Argument types: b

View File

@ -1,9 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_opnarg(int opcode)
CC_opnarg(opcode)
{ {
/* Instruction with optional argument, but now without one /* Instruction with optional argument, but now without one
Argument types: w Argument types: w

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_oppnam(int opcode, char *pnam)
CC_oppnam(opcode, pnam)
char *pnam;
{ {
/* Instruction that has a procedure name as argument /* Instruction that has a procedure name as argument
Argument types: p Argument types: p

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_pnam(char *str)
CC_pnam(str)
char *str;
{ {
COMMA(); COMMA();
PNAM(str); PNAM(str);

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_pro(char *pnam, arith l)
CC_pro(pnam, l)
char *pnam;
arith l;
{ {
/* PRO pseudo with procedure name pnam and # of locals l /* PRO pseudo with procedure name pnam and # of locals l
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_pronarg(char *pnam)
CC_pronarg(pnam)
char *pnam;
{ {
/* PRO pseudo with procedure name pnam and unknown # of locals /* PRO pseudo with procedure name pnam and unknown # of locals
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_psdlb(int op, label dlb)
CC_psdlb(op, dlb)
label dlb;
{ {
/* Pseudo with numeric datalabel /* Pseudo with numeric datalabel
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_psdnam(int op, char *dnam)
CC_psdnam(op, dnam)
char *dnam;
{ {
/* Pseudo with data label /* Pseudo with data label
*/ */

View File

@ -1,10 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_pspnam(int op, char *pnam)
CC_pspnam(op, pnam)
char *pnam;
{ {
/* Pseudo with procedure name /* Pseudo with procedure name
*/ */

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_scon(char *str, arith siz)
CC_scon(str, siz)
char *str;
arith siz;
{ {
COMMA(); COMMA();
SCON(str, siz); SCON(str, siz);

View File

@ -1,11 +1,9 @@
#include "em_code.h"
#include "em_private.h" #include "em_private.h"
/* $Id$ */ /* $Id$ */
void void CC_ucon(char *val, arith siz)
CC_ucon(val,siz)
char *val;
arith siz;
{ {
COMMA(); COMMA();
WCON(sp_ucon, val, siz); WCON(sp_ucon, val, siz);

View File

@ -6,10 +6,7 @@
#include <em.h> #include <em.h>
#include <em_mes.h> #include <em_mes.h>
void void C_ms_ego(int hint, arith offs, arith siz, int regno)
C_ms_ego(hint, offs, siz, regno)
int hint, regno;
arith offs, siz;
{ {
C_mes_begin(ms_ego); C_mes_begin(ms_ego);
C_cst((arith)hint); C_cst((arith)hint);

View File

@ -84,110 +84,110 @@ for (i=1;i<20;i++) {
*/ */
static flt_arith s10pow[] = { /* representation of 10 ** i */ static flt_arith s10pow[] = { /* representation of 10 ** i */
{ 0, 0, 0x80000000, 0 }, { 0, 0, { 0x80000000, 0 } },
{ 0, 3, 0xA0000000, 0 }, { 0, 3, { 0xA0000000, 0 } },
{ 0, 6, 0xC8000000, 0 }, { 0, 6, { 0xC8000000, 0 } },
{ 0, 9, 0xFA000000, 0 }, { 0, 9, { 0xFA000000, 0 } },
{ 0, 13, 0x9C400000, 0 }, { 0, 13, { 0x9C400000, 0 } },
{ 0, 16, 0xC3500000, 0 }, { 0, 16, { 0xC3500000, 0 } },
{ 0, 19, 0xF4240000, 0 }, { 0, 19, { 0xF4240000, 0 } },
{ 0, 23, 0x98968000, 0 }, { 0, 23, { 0x98968000, 0 } },
{ 0, 26, 0xBEBC2000, 0 }, { 0, 26, { 0xBEBC2000, 0 } },
{ 0, 29, 0xEE6B2800, 0 }, { 0, 29, { 0xEE6B2800, 0 } },
{ 0, 33, 0x9502F900, 0 }, { 0, 33, { 0x9502F900, 0 } },
{ 0, 36, 0xBA43B740, 0 }, { 0, 36, { 0xBA43B740, 0 } },
{ 0, 39, 0xE8D4A510, 0 }, { 0, 39, { 0xE8D4A510, 0 } },
{ 0, 43, 0x9184E72A, 0 }, { 0, 43, { 0x9184E72A, 0 } },
{ 0, 46, 0xB5E620F4, 0x80000000 }, { 0, 46, { 0xB5E620F4, 0x80000000 } },
{ 0, 49, 0xE35FA931, 0xA0000000 }, { 0, 49, { 0xE35FA931, 0xA0000000 } },
{ 0, 53, 0x8E1BC9BF, 0x04000000 }, { 0, 53, { 0x8E1BC9BF, 0x04000000 } },
{ 0, 56, 0xB1A2BC2E, 0xC5000000 }, { 0, 56, { 0xB1A2BC2E, 0xC5000000 } },
{ 0, 59, 0xDE0B6B3A, 0x76400000 }, { 0, 59, { 0xDE0B6B3A, 0x76400000 } },
{ 0, 63, 0x8AC72304, 0x89E80000 }, { 0, 63, { 0x8AC72304, 0x89E80000 } },
{ 0, 66, 0xAD78EBC5, 0xAC620000 }, { 0, 66, { 0xAD78EBC5, 0xAC620000 } },
{ 0, 69, 0xD8D726B7, 0x177A8000 }, { 0, 69, { 0xD8D726B7, 0x177A8000 } },
{ 0, 73, 0x87867832, 0x6EAC9000 }, { 0, 73, { 0x87867832, 0x6EAC9000 } },
{ 0, 76, 0xA968163F, 0x0A57B400 }, { 0, 76, { 0xA968163F, 0x0A57B400 } },
{ 0, 79, 0xD3C21BCE, 0xCCEDA100 }, { 0, 79, { 0xD3C21BCE, 0xCCEDA100 } },
{ 0, 83, 0x84595161, 0x401484A0 }, { 0, 83, { 0x84595161, 0x401484A0 } },
{ 0, 86, 0xA56FA5B9, 0x9019A5C8 }, { 0, 86, { 0xA56FA5B9, 0x9019A5C8 } },
{ 0, 89, 0xCECB8F27, 0xF4200F3A } { 0, 89, { 0xCECB8F27, 0xF4200F3A } }
}; };
static flt_arith big_10pow[] = { /* representation of 10 ** (28*i) */ static flt_arith big_10pow[] = { /* representation of 10 ** (28*i) */
{ 0, 0, 0x80000000, 0 }, { 0, 0, { 0x80000000, 0 } },
{ 0, 93, 0x813F3978, 0xF8940984 }, { 0, 93, { 0x813F3978, 0xF8940984 } },
{ 0, 186, 0x82818F12, 0x81ED44A0 }, { 0, 186, { 0x82818F12, 0x81ED44A0 } },
{ 0, 279, 0x83C7088E, 0x1AAB65DB }, { 0, 279, { 0x83C7088E, 0x1AAB65DB } },
{ 0, 372, 0x850FADC0, 0x9923329E }, { 0, 372, { 0x850FADC0, 0x9923329E } },
{ 0, 465, 0x865B8692, 0x5B9BC5C2 }, { 0, 465, { 0x865B8692, 0x5B9BC5C2 } },
{ 0, 558, 0x87AA9AFF, 0x79042287 }, { 0, 558, { 0x87AA9AFF, 0x79042287 } },
{ 0, 651, 0x88FCF317, 0xF22241E2 }, { 0, 651, { 0x88FCF317, 0xF22241E2 } },
{ 0, 744, 0x8A5296FF, 0xE33CC930 }, { 0, 744, { 0x8A5296FF, 0xE33CC930 } },
{ 0, 837, 0x8BAB8EEF, 0xB6409C1A }, { 0, 837, { 0x8BAB8EEF, 0xB6409C1A } },
{ 0, 930, 0x8D07E334, 0x55637EB3 }, { 0, 930, { 0x8D07E334, 0x55637EB3 } },
{ 0, 1023, 0x8E679C2F, 0x5E44FF8F }, { 0, 1023, { 0x8E679C2F, 0x5E44FF8F } },
{ 0, 1116, 0x8FCAC257, 0x558EE4E6 }, { 0, 1116, { 0x8FCAC257, 0x558EE4E6 } },
{ 0, 1209, 0x91315E37, 0xDB165AA9 }, { 0, 1209, { 0x91315E37, 0xDB165AA9 } },
{ 0, 1302, 0x929B7871, 0xDE7F22B9 }, { 0, 1302, { 0x929B7871, 0xDE7F22B9 } },
{ 0, 1395, 0x940919BB, 0xD4620B6D }, { 0, 1395, { 0x940919BB, 0xD4620B6D } },
{ 0, 1488, 0x957A4AE1, 0xEBF7F3D4 }, { 0, 1488, { 0x957A4AE1, 0xEBF7F3D4 } },
{ 0, 1581, 0x96EF14C6, 0x454AA840 }, { 0, 1581, { 0x96EF14C6, 0x454AA840 } },
{ 0, 1674, 0x98678061, 0x27ECE4F5 }, { 0, 1674, { 0x98678061, 0x27ECE4F5 } },
{ 0, 1767, 0x99E396C1, 0x3A3ACFF2 } { 0, 1767, { 0x99E396C1, 0x3A3ACFF2 } }
}; };
static flt_arith r_10pow[] = { /* representation of 10 ** -i */ static flt_arith r_10pow[] = { /* representation of 10 ** -i */
{ 0, 0, 0x80000000, 0 }, { 0, 0, { 0x80000000, 0 } },
{ 0, -4, 0xCCCCCCCC, 0xCCCCCCCD }, { 0, -4, { 0xCCCCCCCC, 0xCCCCCCCD } },
{ 0, -7, 0xA3D70A3D, 0x70A3D70A }, { 0, -7, { 0xA3D70A3D, 0x70A3D70A } },
{ 0, -10, 0x83126E97, 0x8D4FDF3B }, { 0, -10, { 0x83126E97, 0x8D4FDF3B } },
{ 0, -14, 0xD1B71758, 0xE219652C }, { 0, -14, { 0xD1B71758, 0xE219652C } },
{ 0, -17, 0xA7C5AC47, 0x1B478423 }, { 0, -17, { 0xA7C5AC47, 0x1B478423 } },
{ 0, -20, 0x8637BD05, 0xAF6C69B6 }, { 0, -20, { 0x8637BD05, 0xAF6C69B6 } },
{ 0, -24, 0xD6BF94D5, 0xE57A42BC }, { 0, -24, { 0xD6BF94D5, 0xE57A42BC } },
{ 0, -27, 0xABCC7711, 0x8461CEFD }, { 0, -27, { 0xABCC7711, 0x8461CEFD } },
{ 0, -30, 0x89705F41, 0x36B4A597 }, { 0, -30, { 0x89705F41, 0x36B4A597 } },
{ 0, -34, 0xDBE6FECE, 0xBDEDD5BF }, { 0, -34, { 0xDBE6FECE, 0xBDEDD5BF } },
{ 0, -37, 0xAFEBFF0B, 0xCB24AAFF }, { 0, -37, { 0xAFEBFF0B, 0xCB24AAFF } },
{ 0, -40, 0x8CBCCC09, 0x6F5088CC }, { 0, -40, { 0x8CBCCC09, 0x6F5088CC } },
{ 0, -44, 0xE12E1342, 0x4BB40E13 }, { 0, -44, { 0xE12E1342, 0x4BB40E13 } },
{ 0, -47, 0xB424DC35, 0x095CD80F }, { 0, -47, { 0xB424DC35, 0x095CD80F } },
{ 0, -50, 0x901D7CF7, 0x3AB0ACD9 }, { 0, -50, { 0x901D7CF7, 0x3AB0ACD9 } },
{ 0, -54, 0xE69594BE, 0xC44DE15B }, { 0, -54, { 0xE69594BE, 0xC44DE15B } },
{ 0, -57, 0xB877AA32, 0x36A4B449 }, { 0, -57, { 0xB877AA32, 0x36A4B449 } },
{ 0, -60, 0x9392EE8E, 0x921D5D07 }, { 0, -60, { 0x9392EE8E, 0x921D5D07 } },
{ 0, -64, 0xEC1E4A7D, 0xB69561A5 }, { 0, -64, { 0xEC1E4A7D, 0xB69561A5 } },
{ 0, -67, 0xBCE50864, 0x92111AEB }, { 0, -67, { 0xBCE50864, 0x92111AEB } },
{ 0, -70, 0x971DA050, 0x74DA7BEF }, { 0, -70, { 0x971DA050, 0x74DA7BEF } },
{ 0, -74, 0xF1C90080, 0xBAF72CB1 }, { 0, -74, { 0xF1C90080, 0xBAF72CB1 } },
{ 0, -77, 0xC16D9A00, 0x95928A27 }, { 0, -77, { 0xC16D9A00, 0x95928A27 } },
{ 0, -80, 0x9ABE14CD, 0x44753B53 }, { 0, -80, { 0x9ABE14CD, 0x44753B53 } },
{ 0, -84, 0xF79687AE, 0xD3EEC551 }, { 0, -84, { 0xF79687AE, 0xD3EEC551 } },
{ 0, -87, 0xC6120625, 0x76589DDB }, { 0, -87, { 0xC6120625, 0x76589DDB } },
{ 0, -90, 0x9E74D1B7, 0x91E07E48 } { 0, -90, { 0x9E74D1B7, 0x91E07E48 } }
}; };
static flt_arith r_big_10pow[] = { /* representation of 10 ** -(28*i) */ static flt_arith r_big_10pow[] = { /* representation of 10 ** -(28*i) */
{ 0, 0, 0x80000000, 0 }, { 0, 0, { 0x80000000, 0 } },
{ 0, -94, 0xFD87B5F2, 0x8300CA0E }, { 0, -94, { 0xFD87B5F2, 0x8300CA0E } },
{ 0, -187, 0xFB158592, 0xBE068D2F }, { 0, -187, { 0xFB158592, 0xBE068D2F } },
{ 0, -280, 0xF8A95FCF, 0x88747D94 }, { 0, -280, { 0xF8A95FCF, 0x88747D94 } },
{ 0, -373, 0xF64335BC, 0xF065D37D }, { 0, -373, { 0xF64335BC, 0xF065D37D } },
{ 0, -466, 0xF3E2F893, 0xDEC3F126 }, { 0, -466, { 0xF3E2F893, 0xDEC3F126 } },
{ 0, -559, 0xF18899B1, 0xBC3F8CA2 }, { 0, -559, { 0xF18899B1, 0xBC3F8CA2 } },
{ 0, -652, 0xEF340A98, 0x172AACE5 }, { 0, -652, { 0xEF340A98, 0x172AACE5 } },
{ 0, -745, 0xECE53CEC, 0x4A314EBE }, { 0, -745, { 0xECE53CEC, 0x4A314EBE } },
{ 0, -838, 0xEA9C2277, 0x23EE8BCB }, { 0, -838, { 0xEA9C2277, 0x23EE8BCB } },
{ 0, -931, 0xE858AD24, 0x8F5C22CA }, { 0, -931, { 0xE858AD24, 0x8F5C22CA } },
{ 0, -1024, 0xE61ACF03, 0x3D1A45DF }, { 0, -1024, { 0xE61ACF03, 0x3D1A45DF } },
{ 0, -1117, 0xE3E27A44, 0x4D8D98B8 }, { 0, -1117, { 0xE3E27A44, 0x4D8D98B8 } },
{ 0, -1210, 0xE1AFA13A, 0xFBD14D6E }, { 0, -1210, { 0xE1AFA13A, 0xFBD14D6E } },
{ 0, -1303, 0xDF82365C, 0x497B5454 }, { 0, -1303, { 0xDF82365C, 0x497B5454 } },
{ 0, -1396, 0xDD5A2C3E, 0xAB3097CC }, { 0, -1396, { 0xDD5A2C3E, 0xAB3097CC } },
{ 0, -1489, 0xDB377599, 0xB6074245 }, { 0, -1489, { 0xDB377599, 0xB6074245 } },
{ 0, -1582, 0xD91A0545, 0xCDB51186 }, { 0, -1582, { 0xD91A0545, 0xCDB51186 } },
{ 0, -1675, 0xD701CE3B, 0xD387BF48 }, { 0, -1675, { 0xD701CE3B, 0xD387BF48 } },
{ 0, -1768, 0xD4EEC394, 0xD6258BF8 } { 0, -1768, { 0xD4EEC394, 0xD6258BF8 } }
}; };
#define BIGSZ (sizeof(big_10pow)/sizeof(big_10pow[0])) #define BIGSZ (sizeof(big_10pow)/sizeof(big_10pow[0]))

View File

@ -9,6 +9,14 @@
#ifndef __OBJECT_INCLUDED__ #ifndef __OBJECT_INCLUDED__
#define __OBJECT_INCLUDED__ #define __OBJECT_INCLUDED__
struct fil;
struct outhead;
struct outsect;
struct outname;
struct ar_hdr;
struct ranlib;
struct outrelo;
_PROTOTYPE(int wr_open, (char *f)); _PROTOTYPE(int wr_open, (char *f));
_PROTOTYPE(void wr_close, (void)); _PROTOTYPE(void wr_close, (void));
_PROTOTYPE(void wr_ohead, (struct outhead *h)); _PROTOTYPE(void wr_ohead, (struct outhead *h));
@ -24,6 +32,7 @@ _PROTOTYPE(void wr_ranlib, (int fd, struct ranlib *r, long cnt));
_PROTOTYPE(void wr_int2, (int fd, int i)); _PROTOTYPE(void wr_int2, (int fd, int i));
_PROTOTYPE(void wr_long, (int fd, long l)); _PROTOTYPE(void wr_long, (int fd, long l));
_PROTOTYPE(void wr_bytes, (int fd, char *buf, long l)); _PROTOTYPE(void wr_bytes, (int fd, char *buf, long l));
_PROTOTYPE(void __wr_flush, (struct fil *ptr));
_PROTOTYPE(int rd_open, (char *f)); _PROTOTYPE(int rd_open, (char *f));
_PROTOTYPE(int rd_fdopen, (int f)); _PROTOTYPE(int rd_fdopen, (int f));
_PROTOTYPE(void rd_close, (void)); _PROTOTYPE(void rd_close, (void));
@ -38,6 +47,7 @@ _PROTOTYPE(void rd_string, (char *s, long c));
_PROTOTYPE(int rd_arhdr, (int fd, struct ar_hdr *a)); _PROTOTYPE(int rd_arhdr, (int fd, struct ar_hdr *a));
_PROTOTYPE(void rd_ranlib, (int fd, struct ranlib *r, long cnt)); _PROTOTYPE(void rd_ranlib, (int fd, struct ranlib *r, long cnt));
_PROTOTYPE(int rd_int2, (int fd)); _PROTOTYPE(int rd_int2, (int fd));
_PROTOTYPE(unsigned int rd_unsigned2, (int fd));
_PROTOTYPE(long rd_long, (int fd)); _PROTOTYPE(long rd_long, (int fd));
_PROTOTYPE(void rd_bytes, (int fd, char *buf, long l)); _PROTOTYPE(void rd_bytes, (int fd, char *buf, long l));
_PROTOTYPE(int rd_fd, (void)); _PROTOTYPE(int rd_fd, (void));

View File

@ -22,7 +22,8 @@ module_object = clibrary {
outputs = {"%U%/lib_object.a"}, outputs = {"%U%/lib_object.a"},
install = { install = {
pm.install(LIBDIR.."libobject.a") pm.install(LIBDIR.."libobject.a"),
pm.install(d.."object.h", "%HEADERDIR%object.h")
} }
} }
--[[ --[[

View File

@ -3,10 +3,10 @@
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright". * See the copyright notice in the ACK home directory, in the file "Copyright".
*/ */
#include "obj.h" #include "obj.h"
unsigned int unsigned int rd_unsigned2(int fd)
rd_unsigned2(fd)
{ {
char buf[2]; char buf[2];

View File

@ -12,6 +12,12 @@
*/ */
#include "obj.h" #include "obj.h"
#include "object.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
/* /*
* Parts of the output file. * Parts of the output file.
@ -50,11 +56,13 @@ void __wr_flush(struct fil *ptr)
ptr->pbegin = ptr->pbuf; ptr->pbegin = ptr->pbuf;
} }
static void #if 0
OUTWRITE(p, b, n) int p part number
int p; /* part number */ char *b buffer pointer
register char *b; /* buffer pointer */ long number write count
long n; /* write count */ #endif
static void OUTWRITE(int p, char *b, long n)
{ {
register struct fil *ptr = &__parts[p]; register struct fil *ptr = &__parts[p];
register char *pn = ptr->pnow; register char *pn = ptr->pnow;
@ -116,10 +124,12 @@ OUTWRITE(p, b, n)
} }
} }
static void /*
BEGINSEEK(p, o) int p; part number
int p; /* part number */ long o; offset in file
long o; /* offset in file */ */
static void BEGINSEEK(int p, long o)
{ {
register struct fil *ptr = &__parts[p]; register struct fil *ptr = &__parts[p];
@ -160,10 +170,9 @@ wr_open(f)
return 1; return 1;
} }
void void wr_close()
wr_close()
{ {
register struct fil *ptr; struct fil *ptr;
for (ptr = &__parts[PARTEMIT]; ptr < &__parts[NPARTS]; ptr++) { for (ptr = &__parts[PARTEMIT]; ptr < &__parts[NPARTS]; ptr++) {
__wr_flush(ptr); __wr_flush(ptr);
@ -178,12 +187,10 @@ wr_close()
#endif /* OUTSEEK */ #endif /* OUTSEEK */
} }
void void wr_ohead(struct outhead *head)
wr_ohead(head)
register struct outhead *head;
{ {
{ {
register long off = OFF_RELO(*head); long off = OFF_RELO(*head);
BEGINSEEK(PARTEMIT, 0L); BEGINSEEK(PARTEMIT, 0L);
BEGINSEEK(PARTRELO, off); BEGINSEEK(PARTRELO, off);
@ -200,7 +207,7 @@ wr_ohead(head)
{ {
char buf[SZ_HEAD]; char buf[SZ_HEAD];
register char *c = &buf[0]; char *c = &buf[0];
put2(head->oh_magic, c); c += 2; put2(head->oh_magic, c); c += 2;
put2(head->oh_stamp, c); c += 2; put2(head->oh_stamp, c); c += 2;
@ -215,12 +222,10 @@ wr_ohead(head)
else OUTWRITE(PARTEMIT, (char *)head, (long)SZ_HEAD); else OUTWRITE(PARTEMIT, (char *)head, (long)SZ_HEAD);
} }
void void wr_sect(struct outsect *sect, unsigned int cnt)
wr_sect(sect, cnt)
register struct outsect *sect;
register unsigned int cnt;
{ {
{ register unsigned int i = cnt; {
unsigned int i = cnt;
while (i--) { while (i--) {
if (offcnt >= 1 && offcnt < SECTCNT) { if (offcnt >= 1 && offcnt < SECTCNT) {
@ -236,8 +241,8 @@ wr_sect(sect, cnt)
#endif #endif
while (cnt) while (cnt)
{ {
register char *c; char *c;
register unsigned int i; unsigned int i;
i = __parts[PARTEMIT].cnt/SZ_SECT; i = __parts[PARTEMIT].cnt/SZ_SECT;
c = __parts[PARTEMIT].pnow; c = __parts[PARTEMIT].pnow;
@ -264,11 +269,10 @@ wr_sect(sect, cnt)
#endif #endif
} }
void /* s => section number */
wr_outsect(s) void wr_outsect(int s)
int s; /* section number */
{ {
register struct fil *ptr = &__parts[PARTEMIT + getsect(sectionnr)]; struct fil *ptr = &__parts[PARTEMIT + getsect(sectionnr)];
if (s != sectionnr && s >= (SECTCNT-1) && sectionnr >= (SECTCNT-1)) { if (s != sectionnr && s >= (SECTCNT-1) && sectionnr >= (SECTCNT-1)) {
#ifdef OUTSEEK #ifdef OUTSEEK
@ -297,27 +301,20 @@ wr_outsect(s)
/* /*
* We don't have to worry about byte order here. * We don't have to worry about byte order here.
*/ */
void void wr_emit(char *emit, long cnt)
wr_emit(emit, cnt)
char *emit;
long cnt;
{ {
OUTWRITE(PARTEMIT + getsect(sectionnr) , emit, cnt); OUTWRITE(PARTEMIT + getsect(sectionnr) , emit, cnt);
} }
void void wr_relo(struct outrelo *relo, unsigned int cnt)
wr_relo(relo, cnt)
register struct outrelo *relo;
unsigned int cnt;
{ {
#if BYTE_ORDER == 0x0123 #if BYTE_ORDER == 0x0123
if (sizeof(struct outrelo) != SZ_RELO) if (sizeof(struct outrelo) != SZ_RELO)
#endif #endif
while (cnt) while (cnt)
{ {
register char *c; char *c;
register unsigned int i; unsigned int i;
i = __parts[PARTRELO].cnt/SZ_RELO; i = __parts[PARTRELO].cnt/SZ_RELO;
c = __parts[PARTRELO].pnow; c = __parts[PARTRELO].pnow;
@ -343,18 +340,15 @@ wr_relo(relo, cnt)
#endif #endif
} }
void void wr_name(struct outname *name, unsigned int cnt)
wr_name(name, cnt)
register struct outname *name;
unsigned int cnt;
{ {
#if BYTE_ORDER == 0x0123 #if BYTE_ORDER == 0x0123
if (sizeof(struct outname) != SZ_NAME) if (sizeof(struct outname) != SZ_NAME)
#endif #endif
while (cnt) while (cnt)
{ {
register char *c; char *c;
register unsigned int i; unsigned int i;
i = __parts[PARTNAME].cnt/SZ_NAME; i = __parts[PARTNAME].cnt/SZ_NAME;
c = __parts[PARTNAME].pnow; c = __parts[PARTNAME].pnow;
@ -379,10 +373,7 @@ wr_name(name, cnt)
} }
void void wr_string(char *addr, long len)
wr_string(addr, len)
char *addr;
long len;
{ {
OUTWRITE(PARTCHAR, addr, len); OUTWRITE(PARTCHAR, addr, len);
@ -390,10 +381,7 @@ wr_string(addr, len)
#ifdef SYMDBUG #ifdef SYMDBUG
void void wr_dbug(char *buf, long size)
wr_dbug(buf, size)
char *buf;
long size;
{ {
OUTWRITE(PARTDBUG, buf, size); OUTWRITE(PARTDBUG, buf, size);
} }

View File

@ -7,10 +7,9 @@
extern int __sectionnr; extern int __sectionnr;
void void wr_putc(int ch)
wr_putc(ch)
{ {
register struct fil *ptr = &__parts[PARTEMIT+getsect(__sectionnr)]; struct fil *ptr = &__parts[PARTEMIT+getsect(__sectionnr)];
if (ptr->cnt == 0) __wr_flush(ptr); if (ptr->cnt == 0) __wr_flush(ptr);
ptr->cnt--; *ptr->pnow++ = ch; ptr->cnt--; *ptr->pnow++ = ch;

View File

@ -22,6 +22,7 @@
#include <assert.h> #include <assert.h>
#include <alloc.h> #include <alloc.h>
#include <system.h> #include <system.h>
#include <ctype.h>
#include <em_label.h> #include <em_label.h>
#include <em_arith.h> #include <em_arith.h>
#include <em_pseu.h> #include <em_pseu.h>
@ -40,8 +41,7 @@
static File *fd; static File *fd;
static char *_ich; static char *_ich;
PRIVATE int static int _fill()
_fill()
{ {
static char text[BUFSIZ + 1]; static char text[BUFSIZ + 1];
static int sz; static int sz;
@ -79,7 +79,7 @@ static int state; /* What state are we in? */
static int EM_initialized; /* EM_open called? */ static int EM_initialized; /* EM_open called? */
static long wordmask[] = { /* allowed bits in a word */ long wordmask[] = { /* allowed bits in a word */
0x00000000, 0x00000000,
0x000000FF, 0x000000FF,
0x0000FFFF, 0x0000FFFF,
@ -99,18 +99,14 @@ static char *argrange = "Argument range error";
/* Error handling /* Error handling
*/ */
PRIVATE void static void xerror(char *s)
xerror(s)
char *s;
{ {
if (emhead->em_type != EM_FATAL) emhead->em_type = EM_ERROR; if (emhead->em_type != EM_FATAL) emhead->em_type = EM_ERROR;
if (!EM_error) EM_error = s; if (!EM_error) EM_error = s;
} }
#ifdef COMPACT #ifdef COMPACT
PRIVATE void void xfatal(char *s)
xfatal(s)
char *s;
{ {
emhead->em_type = EM_FATAL; emhead->em_type = EM_FATAL;
if (!EM_error) EM_error = s; if (!EM_error) EM_error = s;
@ -123,9 +119,8 @@ xfatal(s)
/* EM_open: Open input file, get magic word if COMPACT. /* EM_open: Open input file, get magic word if COMPACT.
*/ */
EXPORT int
EM_open(filename) int EM_open(char *filename)
char *filename;
{ {
if (EM_initialized) { if (EM_initialized) {
EM_error = "EM_open already called"; EM_error = "EM_open already called";
@ -157,10 +152,8 @@ EM_open(filename)
/* EM_close: Close input file /* EM_close: Close input file
*/ */
EXPORT void void EM_close()
EM_close()
{ {
if (fd != STDIN) { if (fd != STDIN) {
sys_close(fd); sys_close(fd);
fd = STDIN; fd = STDIN;
@ -175,11 +168,8 @@ EM_close()
again, but also to deliver the arguments on next calls to EM_getinstr. again, but also to deliver the arguments on next calls to EM_getinstr.
This is indicated by the variable "argp". This is indicated by the variable "argp".
*/ */
PRIVATE void static void startmes(struct e_instr *p)
startmes(p)
register struct e_instr *p;
{ {
getarg(cst_ptyp, &(p->em_arg)); getarg(cst_ptyp, &(p->em_arg));
state = MES; state = MES;
@ -206,11 +196,8 @@ startmes(p)
/* EM_getinstr: read an "EM_line" /* EM_getinstr: read an "EM_line"
*/ */
EXPORT int int EM_getinstr(struct e_instr *p)
EM_getinstr(p)
register struct e_instr *p;
{ {
EM_error = 0; EM_error = 0;
if (ahead) { if (ahead) {
register int i; register int i;

View File

@ -9,12 +9,14 @@
#include <ctype.h> #include <ctype.h>
/* Since isascii is not standard, as c89 or C99, privide another method */
#define IsAscii(_c) (((_c) & ~0x7f) == 0)
/* get16, get32: read a signed constant /* get16, get32: read a signed constant
*/ */
PRIVATE int static int get16()
get16()
{ {
register int l_byte, h_byte; int l_byte, h_byte;
l_byte = getbyte(); l_byte = getbyte();
h_byte = getbyte(); h_byte = getbyte();
@ -22,11 +24,10 @@ get16()
return l_byte | (h_byte << 8); return l_byte | (h_byte << 8);
} }
PRIVATE arith static arith get32()
get32()
{ {
register arith l; arith l;
register int h_byte; int h_byte;
l = getbyte(); l = getbyte();
l |= ((unsigned) getbyte() << 8); l |= ((unsigned) getbyte() << 8);
@ -36,16 +37,14 @@ get32()
return l | ((arith) h_byte << 24); return l | ((arith) h_byte << 24);
} }
PRIVATE struct string *getstring(); static struct string *getstring();
/* getarg : read an argument of any type, and check it against "typset" /* getarg : read an argument of any type, and check it against "typset"
if neccesary. Put result in "ap". if neccesary. Put result in "ap".
*/ */
PRIVATE void static void getarg(int typset, struct e_arg *ap)
getarg(typset, ap)
register struct e_arg *ap;
{ {
register int i = getbyte(); int i = getbyte();
#ifdef CHECKING #ifdef CHECKING
int argtyp; int argtyp;
#endif /* CHECKING */ #endif /* CHECKING */
@ -106,7 +105,7 @@ getarg(typset, ap)
case sp_pnam: /* A procedure name */ case sp_pnam: /* A procedure name */
{ {
register struct string *p; struct string *p;
p = getstring(1); p = getstring(1);
ap->ema_pnam = p->str; ap->ema_pnam = p->str;
@ -116,7 +115,7 @@ getarg(typset, ap)
case sp_dnam: /* A Non-numeric data label */ case sp_dnam: /* A Non-numeric data label */
{ {
register struct string *p; struct string *p;
p = getstring(1); p = getstring(1);
ap->ema_dnam = p->str; ap->ema_dnam = p->str;
@ -139,7 +138,7 @@ getarg(typset, ap)
case sp_ucon: /* An unsigned constant */ case sp_ucon: /* An unsigned constant */
case sp_fcon: /* A floating constant */ case sp_fcon: /* A floating constant */
{ {
register struct string *p; struct string *p;
getarg(cst_ptyp, ap); getarg(cst_ptyp, ap);
ap->ema_szoroff = ap->ema_cst; ap->ema_szoroff = ap->ema_cst;
@ -151,7 +150,7 @@ getarg(typset, ap)
case sp_scon: /* A string constant */ case sp_scon: /* A string constant */
{ {
register struct string *p; struct string *p;
p = getstring(0); p = getstring(0);
ap->ema_argtype = str_ptyp; ap->ema_argtype = str_ptyp;
@ -190,20 +189,18 @@ getarg(typset, ap)
#ifdef CHECKING #ifdef CHECKING
/* checkident: check that a string indeed represents an identifier /* checkident: check that a string indeed represents an identifier
*/ */
PRIVATE int static int checkident(struct string *s)
checkident(s)
register struct string *s;
{ {
register char *p; char *p;
register int n; int n;
p = s->str; p = s->str;
if (!isascii(*p) || (!isalpha(*p) && *p != '_')) { if (!IsAscii(*p) || (!isalpha(*p) && *p != '_')) {
return 0; return 0;
} }
p++; p++;
for (n = s->length; --n > 0; p++) { for (n = s->length; --n > 0; p++) {
if (!isascii(*p) || (!isalnum(*p) && *p != '_')) { if (!IsAscii(*p) || (!isalnum(*p) && *p != '_')) {
return 0; return 0;
} }
} }
@ -214,12 +211,11 @@ checkident(s)
/* getstring: read a string from the input /* getstring: read a string from the input
*/ */
/*ARGSUSED*/ /*ARGSUSED*/
PRIVATE struct string * static struct string *getstring(int isident)
getstring(isident)
{ {
register char *p; char *p;
register int n; int n;
register struct string *s = &string; struct string *s = &string;
struct e_arg dummy; struct e_arg dummy;
getarg(cst_ptyp, &dummy); getarg(cst_ptyp, &dummy);
@ -259,11 +255,9 @@ getstring(isident)
/* gethead: read the start of an EM-line /* gethead: read the start of an EM-line
*/ */
PRIVATE void static void gethead(struct e_instr *p)
gethead(p)
register struct e_instr *p;
{ {
register int i; int i;
EM_lineno++; EM_lineno++;

View File

@ -3,10 +3,6 @@
* This file is copied into Lpars.c. * This file is copied into Lpars.c.
*/ */
#ifndef lint
static char *rcsid = "$Id$";
#endif
unsigned int LLtcnt[LL_NTERMINALS]; unsigned int LLtcnt[LL_NTERMINALS];
unsigned int LLscnt[LL_NSETS]; unsigned int LLscnt[LL_NSETS];
int LLcsymb, LLsymb; int LLcsymb, LLsymb;

View File

@ -68,7 +68,7 @@ typedef struct {
#define p_cont(elem) ((path *)l_content(elem)) #define p_cont(elem) ((path *)l_content(elem))
/* Return values of setpath() */ /* Return values of setpath() */
enum f_path { F_OK, F_NOMATCH, F_NOPATH } ; enum f_path { FP_OK, FP_NOMATCH, FP_NOPATH } ;
/* Own routines */ /* Own routines */
enum f_path getpath(trf **first); enum f_path getpath(trf **first);
@ -84,6 +84,66 @@ char *changecore(char *ptr, unsigned int size);
#define freecore(area) free(area) #define freecore(area) free(area)
growstring scanb(char *line); growstring scanb(char *line);
growstring scanvars(char *line); growstring scanvars(char *line);
void throws(char *str);
void start_scan();
void scan_found();
void find_cpp();
void try(list_elem *f_scan, char *suffix);
void setlist(char *name);
void fuerror(const char *fmt, ...);
void transini();
int process(char *arg);
void setsvar(char *name, char *str);
void getmapflags(trf *phase);
void vprint(const char* fmt, ...);
void disc_inputs(trf *phase);
int startrf(trf *first);
void setpvar(char *name,char *(*rout)(void));
void l_add(list_head *header, char *string);
void error(const char *fmt, ...);
void do_Rflag(char *argp);
void werror(const char *fmt, ...);
void add_input(path *file, trf *phase);
void add_head(char *str);
void add_tail(char *str);
int mayprep();
int transform(trf *phase);
void fatal(const char* fmt, ...);
void l_clear(list_head *header);
int satisfy(trf *trafo, char *suffix);
int setfiles(trf *phase);
void disc_files(trf *phase);
int runphase(trf *phase);
void rmfile(path *file);
int mapflag(list_head *maplist, char *cflag);
void clr_noscan(char *str);
void l_throw(list_head *header);
int mapexpand(char *mapentry, char *cflag);
void prns(char *s);
void set_Rflag(char *argp);
void condit(growstring *line, list_head *fsuff, list_head *lsuff, char *tailval);
void doassign(char *line, char *star, int length);
void getcallargs(trf *phase);
void discardargs(trf *phase);
void quit(int code);
void rmtemps();
void intrf();
void open_in(char *name);
void close_in();
int getinchar();
int getln();
void keephead(char *suffix);
void varinit();
void vieuwargs(int argc, char *argv[]);
void firstarg(char *argp);
void block(trf *first);
void keeptail(char *suffix);
void scanneeds();
void setneeds(char *suffix, int tail);
int run_exec(trf *phase, char *prog);
void do_flush();
void file_final(path *file);
#define DEBUG 1 /* Allow debugging of Ack */ #define DEBUG 1 /* Allow debugging of Ack */

View File

@ -6,15 +6,8 @@
#include "list.h" #include "list.h"
#include "trans.h" #include "trans.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
#endif
#undef EXTERN #undef EXTERN
#define EXTERN #define EXTERN
#include "data.h" #include "data.h"
#ifndef NORCSID
static char rcs_data[] = RCS_DATA ;
#endif

View File

@ -14,12 +14,7 @@
#include "data.h" #include "data.h"
#include <em_path.h> #include <em_path.h>
#ifndef NORCSID #include <unistd.h>
static char rcs_id[] = "$Id$" ;
#endif
void file_final(path *file);
void disc_inputs(trf *phase);
char *add_u(int part, char *ptr) char *add_u(int part, char *ptr)
{ {

View File

@ -15,11 +15,6 @@
#include "ack.h" #include "ack.h"
#include "grows.h" #include "grows.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
static char rcs_grows[] = RCS_GROWS ;
#endif
void gr_add(growstring *id, char c) void gr_add(growstring *id, char c)
{ {
if ( id->gr_size==id->gr_max) { if ( id->gr_size==id->gr_max) {

View File

@ -10,11 +10,6 @@
#include "ack.h" #include "ack.h"
#include "list.h" #include "list.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
static char rcs_list[] = RCS_LIST ;
#endif
/* List handling, operations allowed: /* List handling, operations allowed:
adding strings to the list, adding strings to the list,
throwing away whole lists, throwing away whole lists,

View File

@ -7,31 +7,21 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include "ack.h" #include "ack.h"
#include "list.h" #include "list.h"
#include "trans.h" #include "trans.h"
#include "system.h"
#include "print.h"
#include <local.h> #include <local.h>
#include "data.h" #include "data.h"
#include <signal.h> #include <signal.h>
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
static char rcs_ack[] = RCS_ACK ;
#endif
static int sigs[] = { SIGINT, SIGHUP, SIGTERM, 0 } ; static int sigs[] = { SIGINT, SIGHUP, SIGTERM, 0 } ;
static int arg_count; static int arg_count;
void varinit();
void vieuwargs(int argc, char *argv[]);
void firstarg(char *argp);
void block(trf *first);
void keephead(char *suffix);
void keeptail(char *suffix);
void scanneeds();
void setneeds(char *suffix, int tail);
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
register list_elem *elem ; register list_elem *elem ;
@ -297,15 +287,15 @@ int process(char *arg)
p_basename= keeps(basename(arg)) ; p_basename= keeps(basename(arg)) ;
/* Try to find a path through the transformations */ /* Try to find a path through the transformations */
switch( getpath(&phase) ) { switch( getpath(&phase) ) {
case F_NOPATH : case FP_NOPATH :
error("Cannot produce the desired file from %s",arg) ; error("Cannot produce the desired file from %s",arg) ;
if ( linker ) add_input(&orig,linker) ; if ( linker ) add_input(&orig,linker) ;
return 1 ; return 1 ;
case F_NOMATCH : case FP_NOMATCH :
if ( stopsuffix ) werror("Unknown suffix in %s",arg) ; if ( stopsuffix ) werror("Unknown suffix in %s",arg) ;
if ( linker ) add_input(&orig,linker) ; if ( linker ) add_input(&orig,linker) ;
return 1 ; return 1 ;
case F_OK : case FP_OK :
break ; break ;
} }
if ( !phase ) return 1 ; if ( !phase ) return 1 ;
@ -457,7 +447,7 @@ void setneeds(char *suffix, int tail)
p_suffix= suffix ; p_suffix= suffix ;
switch ( getpath(&phase) ) { switch ( getpath(&phase) ) {
case F_OK : case FP_OK :
for ( ; phase ; phase= phase->t_next ) { for ( ; phase ; phase= phase->t_next ) {
if ( phase->t_needed ) { if ( phase->t_needed ) {
if ( tail ) if ( tail )
@ -467,10 +457,10 @@ void setneeds(char *suffix, int tail)
} }
} }
break ; break ;
case F_NOMATCH : case FP_NOMATCH :
werror("\"%s\": unrecognized suffix",suffix) ; werror("\"%s\": unrecognized suffix",suffix) ;
break ; break ;
case F_NOPATH : case FP_NOPATH :
werror("sorry, cannot produce the desired file(s) from %s files", werror("sorry, cannot produce the desired file(s) from %s files",
suffix) ; suffix) ;
break ; break ;

View File

@ -9,9 +9,7 @@
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#ifndef NORCSID #define IsAscii(_c) (((_c) & ~0x7f) == 0)
static char rcs_id[] = "$Id$" ;
#endif
char *fname = 0 ; char *fname = 0 ;
char dname[200] ; char dname[200] ;
@ -80,9 +78,9 @@ FILE *do_open(char *file)
void readm() void readm()
{ {
register int i ; int i ;
register int token ; int token ;
register FILE *in ; FILE *in ;
in=do_open(fname) ; in=do_open(fname) ;
if ( in==NULL ) { if ( in==NULL ) {
@ -101,7 +99,7 @@ void readm()
} else { } else {
fprintf(intab," ") ; fprintf(intab," ") ;
} }
if ( !isascii(token) || !(isprint(token) || isspace(token)) ){ if ( !IsAscii(token) || !(isprint(token) || isspace(token)) ){
if ( token!=EOF ) { if ( token!=EOF ) {
fprintf(stderr,"warning: non-ascii in %s\n",fname) ; fprintf(stderr,"warning: non-ascii in %s\n",fname) ;
fprintf(intab,"%4d,",token) ; fprintf(intab,"%4d,",token) ;

View File

@ -4,6 +4,7 @@
* *
*/ */
#include <stdlib.h>
#include <string.h> #include <string.h>
#include "ack.h" #include "ack.h"
@ -15,11 +16,6 @@
#include "data.h" #include "data.h"
#include <stdio.h> #include <stdio.h>
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
static char rcs_dmach[] = RCS_DMACH ;
#endif
/************************************************************************/ /************************************************************************/
/* */ /* */
/* Read machine definitions and transformations */ /* Read machine definitions and transformations */
@ -52,10 +48,6 @@ static char *ty_name ;
static char *bol ; static char *bol ;
static char *inname ; static char *inname ;
void intrf();
void open_in(char *name);
void close_in();
void setlist(char *name) void setlist(char *name)
{ {
/* Name is sought in the internal tables, /* Name is sought in the internal tables,

View File

@ -6,16 +6,18 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/wait.h>
#include "ack.h" #include "ack.h"
#include "list.h" #include "list.h"
#include "trans.h" #include "trans.h"
#include "grows.h" #include "grows.h"
#include "data.h" #include "data.h"
#include <signal.h> #include <signal.h>
#include <unistd.h>
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
#endif
#define ARG_MORE 40 /* The size of args chunks to allocate */ #define ARG_MORE 40 /* The size of args chunks to allocate */

View File

@ -10,15 +10,6 @@
#include "list.h" #include "list.h"
#include "data.h" #include "data.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
#endif
void start_scan();
void scan_found();
void find_cpp();
void try(list_elem *f_scan, char *suffix);
enum f_path getpath(trf **first) enum f_path getpath(trf **first)
{ {
/* Try to find a transformation path */ /* Try to find a transformation path */
@ -225,7 +216,7 @@ enum f_path scan_end(trf **first)
#ifdef DEBUG #ifdef DEBUG
if ( debug>=3 ) vprint("End_scan\n"); if ( debug>=3 ) vprint("End_scan\n");
#endif #endif
if ( last_ncount== -1 ) return suf_found ? F_NOPATH : F_NOMATCH ; if ( last_ncount== -1 ) return suf_found ? FP_NOPATH : FP_NOMATCH ;
#ifdef DEBUG #ifdef DEBUG
if ( debug>=2 ) vprint("Transformation found\n"); if ( debug>=2 ) vprint("Transformation found\n");
#endif #endif
@ -240,7 +231,7 @@ enum f_path scan_end(trf **first)
*first= curr ; *first= curr ;
} }
if ( curr->t_next ) { if ( curr->t_next ) {
return F_OK ; return FP_OK ;
} }
prev=curr ; prev=curr ;
} }
@ -252,7 +243,7 @@ enum f_path scan_end(trf **first)
if ( prev ) { if ( prev ) {
prev->t_keep=YES ; prev->t_keep=YES ;
} }
return F_OK ; return FP_OK ;
} }
void find_cpp() void find_cpp()

View File

@ -7,10 +7,6 @@
#include <string.h> #include <string.h>
#include "ack.h" #include "ack.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
#endif
/* The processing of string valued variables, /* The processing of string valued variables,
this is an almost self contained module. this is an almost self contained module.

View File

@ -12,11 +12,6 @@
#include "grows.h" #include "grows.h"
#include "data.h" #include "data.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
static char rcs_trans[] = RCS_TRANS ;
#endif
/****************************************************************************/ /****************************************************************************/
/* Routines for transforming from one file type to another */ /* Routines for transforming from one file type to another */
/****************************************************************************/ /****************************************************************************/
@ -26,12 +21,6 @@ static int touch_head= NO ;
static growstring tail ; static growstring tail ;
static int touch_tail= NO ; static int touch_tail= NO ;
void set_Rflag(char *argp);
void condit(growstring *line, list_head *fsuff, list_head *lsuff, char *tailval);
void doassign(char *line, char *star, int length);
void getcallargs(trf *phase);
void discardargs(trf *phase);
int transform(trf *phase) int transform(trf *phase)
{ {
int ok ; int ok ;

View File

@ -18,10 +18,6 @@
#include <ctype.h> #include <ctype.h>
#include "ack.h" #include "ack.h"
#ifndef NORCSID
static char rcs_id[] = "$Id$" ;
#endif
extern char *progname ; extern char *progname ;
extern int w_flag ; extern int w_flag ;
extern int n_error; extern int n_error;
@ -32,10 +28,7 @@ extern int n_error;
# define STDOUT stderr # define STDOUT stderr
#endif #endif
void fuerror(const char *fmt, ...); #define IsAscii(_c) (((_c) & ~0x7f) == 0)
void werror(const char *fmt, ...);
void quit(int code);
char *basename(char *string) char *basename(char *string)
{ {
@ -53,7 +46,7 @@ char *basename(char *string)
case '/' : last_start=fetch+1 ; break ; case '/' : last_start=fetch+1 ; break ;
case 0 : goto out ; case 0 : goto out ;
} }
if ( !isascii(ctoken) || !isprint(ctoken) ) { if ( !IsAscii(ctoken) || !isprint(ctoken) ) {
werror("non-ascii characters in argument %s",string) ; werror("non-ascii characters in argument %s",string) ;
} }
} }

View File

@ -6,8 +6,6 @@
/* Made into arch/aal by Ceriel Jacobs /* Made into arch/aal by Ceriel Jacobs
*/ */
static char RcsId[] = "$Id$";
/* /*
* Usage: [arch|aal] [qdprtx][vlcu] archive [file] ... * Usage: [arch|aal] [qdprtx][vlcu] archive [file] ...
* v: verbose * v: verbose
@ -35,6 +33,13 @@ static char RcsId[] = "$Id$";
#include <arch.h> #include <arch.h>
#include <ranlib.h> #include <ranlib.h>
#include <unistd.h> #include <unistd.h>
#include <fcntl.h>
#include "system.h"
#include "print.h"
#include "object.h"
#include <missing_proto.h>
#ifdef AAL #ifdef AAL
#include <out.h> #include <out.h>
#define MAGIC_NUMBER AALMAG #define MAGIC_NUMBER AALMAG
@ -458,7 +463,7 @@ void add(char *name, int fd, char *mess)
return; return;
} }
else if (u_fl && status.st_mtime <= member.ar_date) { else if (u_fl && status.st_mtime <= member.ar_date) {
wr_arhdr(fd, member); wr_arhdr(fd, &member);
copy_member(&member, ar_fd, fd, 0); copy_member(&member, ar_fd, fd, 0);
return; return;
} }

View File

@ -27,9 +27,6 @@ int AccFileSpecifier = 0; /* return filespecifier <...> */
int AccDefined = 0; /* accept "defined(...)" */ int AccDefined = 0; /* accept "defined(...)" */
int UnknownIdIsZero = 0; /* interpret unknown id as integer 0 */ int UnknownIdIsZero = 0; /* interpret unknown id as integer 0 */
char *string_token(char *nm, int stop_char);
void skipcomment();
void PushLex() void PushLex()
{ {
DOT = 0; DOT = 0;
@ -43,6 +40,10 @@ int LLlex()
return (DOT != EOF) ? GetToken(&dot) : EOF; return (DOT != EOF) ? GetToken(&dot) : EOF;
} }
#ifdef BUFSIZ
#undef BUFSIZ
#endif
#define BUFSIZ 1024 #define BUFSIZ 1024
int GetToken(struct token *ptok) int GetToken(struct token *ptok)

View File

@ -11,6 +11,8 @@
*/ */
#include <em_arith.h> #include <em_arith.h>
#include "system.h"
#include "print.h"
/* the structure of a token: */ /* the structure of a token: */
struct token { struct token {
@ -42,3 +44,34 @@ extern int err_occurred; /* "error.c" */
#define DOT dot.tk_symb #define DOT dot.tk_symb
#define EOF (-1) #define EOF (-1)
#include <symbol2str.h>
struct idf;
struct token;
char *string_token(char *nm, int stop_char);
void skipcomment();
int GetToken(struct token *ptok);
void fatal(char *fmt, ...);
void EnableMacros();
int replace(struct idf *idef);
void error(char *fmt, ...);
int quoted(int c);
int val_in_base(int c, int base);
void crash(char *fmt, ...);
void skipline();
void warning(char *fmt, ...);
void PushLex();
void If_expr(void);
void PopLex();
void add_dependency(char *s);
int skipspaces(int ch, int skipnl);
void macro_def(struct idf *id, char *text, int nformals, int length, int flags);
void DoUnstack();
void init_pp();
void do_option(char *text);
void preprocess(char *fn);
void domacro();
/* External */
int InsertFile(char *, char **, char **);

View File

@ -5,6 +5,7 @@
*/ */
/* EVALUATION OF BINARY OPERATORS */ /* EVALUATION OF BINARY OPERATORS */
#include "LLlex.h"
#include "Lpars.h" #include "Lpars.h"
#include <em_arith.h> #include <em_arith.h>

View File

@ -51,7 +51,6 @@ static void do_undef();
static void do_line(unsigned int l); static void do_line(unsigned int l);
static int getparams(char *buf[], char parbuf[]); static int getparams(char *buf[], char parbuf[]);
static int macroeq(char *s, char *t); static int macroeq(char *s, char *t);
void macro_def(struct idf *id, char *text, int nformals, int length, int flags);
static char *get_text(char *formals[], int *length); static char *get_text(char *formals[], int *length);
/* Externel dependency */ /* Externel dependency */
@ -84,7 +83,7 @@ char *GetIdentifier()
void domacro() void domacro()
{ {
struct token tk; /* the token itself */ struct token tk; /* the token itself */
register struct idf *id; struct idf *id;
switch(GetToken(&tk)) { /* select control line action */ switch(GetToken(&tk)) { /* select control line action */
case IDENTIFIER: /* is it a macro keyword? */ case IDENTIFIER: /* is it a macro keyword? */
@ -169,8 +168,8 @@ static void skip_block(int to_endif)
#ifndef or #elif until the corresponding #endif is #ifndef or #elif until the corresponding #endif is
seen. seen.
*/ */
register int ch; int ch;
register int skiplevel = nestlevel; /* current nesting level */ int skiplevel = nestlevel; /* current nesting level */
struct token tk; struct token tk;
struct idf *id; struct idf *id;
@ -315,7 +314,7 @@ static void do_define()
char parbuf[PARBUFSIZE]; /* names of formals */ char parbuf[PARBUFSIZE]; /* names of formals */
char *repl_text; /* start of the replacement text */ char *repl_text; /* start of the replacement text */
int length; /* length of the replacement text */ int length; /* length of the replacement text */
register ch; int ch;
/* read the #defined macro's name */ /* read the #defined macro's name */
if (!(str = GetIdentifier())) { if (!(str = GetIdentifier())) {
@ -403,7 +402,7 @@ static void do_if()
static void do_ifdef(int how) static void do_ifdef(int how)
{ {
register struct idf *id; struct idf *id;
char *str; char *str;
/* how == 1 : ifdef; how == 0 : ifndef /* how == 1 : ifdef; how == 0 : ifndef
@ -432,8 +431,8 @@ static void do_ifdef(int how)
static void do_undef() static void do_undef()
{ {
register struct idf *id; struct idf *id;
register char *str = GetIdentifier(); char *str = GetIdentifier();
/* Forget a macro definition. */ /* Forget a macro definition. */
if (str) { if (str) {
@ -475,10 +474,10 @@ static int getparams(char *buf[], char parbuf[])
Note that the '(' has already been eaten. Note that the '(' has already been eaten.
The names of the formal parameters are stored into parbuf. The names of the formal parameters are stored into parbuf.
*/ */
register char **pbuf = &buf[0]; char **pbuf = &buf[0];
register int c; int c;
register char *ptr = &parbuf[0]; char *ptr = &parbuf[0];
register char **pbuf2; char **pbuf2;
LoadChar(c); LoadChar(c);
c = skipspaces(c,0); c = skipspaces(c,0);
@ -536,7 +535,7 @@ void macro_def(struct idf *id, char *text, int nformals, int length, int flags)
table entry belonging to the name of the macro. table entry belonging to the name of the macro.
A warning is given if the definition overwrites another. A warning is given if the definition overwrites another.
*/ */
register struct macro *newdef = id->id_macro; struct macro *newdef = id->id_macro;
if (newdef) { /* is there a redefinition? */ if (newdef) { /* is there a redefinition? */
if (macroeq(newdef->mc_text, text)) if (macroeq(newdef->mc_text, text))
@ -545,7 +544,7 @@ void macro_def(struct idf *id, char *text, int nformals, int length, int flags)
} }
else { else {
#ifdef DOBITS #ifdef DOBITS
register char *p = id->id_text; unsigned char *p = (unsigned char *)id->id_text;
#define setbit(bx) if (!*p) goto go_on; bits[*p++] |= (bx) #define setbit(bx) if (!*p) goto go_on; bits[*p++] |= (bx)
setbit(bit0); setbit(bit0);
setbit(bit1); setbit(bit1);
@ -573,7 +572,7 @@ static int find_name(char *nm, char *index[])
"index" if it can be found there. 0 is returned if it is "index" if it can be found there. 0 is returned if it is
not there. not there.
*/ */
register char **ip = &index[0]; char **ip = &index[0];
while (*ip) while (*ip)
if (strcmp(nm, *ip++) == 0) if (strcmp(nm, *ip++) == 0)
@ -599,10 +598,10 @@ static char *get_text(char *formals[], int *length)
identifiers, because they might be replaced by some actual identifiers, because they might be replaced by some actual
parameter. Other tokens will not be seen as such. parameter. Other tokens will not be seen as such.
*/ */
register int c; int c;
register unsigned int text_size; unsigned int text_size;
char *text = Malloc(text_size = ITEXTSIZE); char *text = Malloc(text_size = ITEXTSIZE);
register unsigned int pos = 0; unsigned int pos = 0;
LoadChar(c); LoadChar(c);
@ -639,7 +638,7 @@ static char *get_text(char *formals[], int *length)
else else
if (formals && class(c) == STIDF) { if (formals && class(c) == STIDF) {
char id_buf[IDFSIZE + 1]; char id_buf[IDFSIZE + 1];
register char *idp = id_buf; char *idp = id_buf;
int n; int n;
/* read identifier: it may be a formal parameter */ /* read identifier: it may be a formal parameter */

View File

@ -5,6 +5,9 @@
*/ */
/* F I L E I N F O R M A T I O N S T R U C T U R E */ /* F I L E I N F O R M A T I O N S T R U C T U R E */
#ifndef UTIL_CPP_FILE_INFO_H
#define UTIL_CPP_FILE_INFO_H
struct file_info { struct file_info {
unsigned int fil_lino; unsigned int fil_lino;
char *fil_name; char *fil_name;
@ -16,3 +19,5 @@ struct file_info {
#define WorkingDir finfo.fil_wdir #define WorkingDir finfo.fil_wdir
extern struct file_info finfo; /* input.c */ extern struct file_info finfo; /* input.c */
#endif /* UTIL_CPP_FILE_INFO_H */

View File

@ -8,6 +8,7 @@
#include <string.h> #include <string.h>
#include <system.h> #include <system.h>
#include <alloc.h> #include <alloc.h>
#include "LLlex.h"
#include "class.h" #include "class.h"
#include "macro.h" #include "macro.h"
#include "idf.h" #include "idf.h"

View File

@ -7,6 +7,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "LLlex.h"
#include "file_info.h" #include "file_info.h"
#include "input.h" #include "input.h"
#define INP_TYPE struct file_info #define INP_TYPE struct file_info

View File

@ -11,6 +11,7 @@
#include <em_arith.h> #include <em_arith.h>
#include <assert.h> #include <assert.h>
#include <system.h> #include <system.h>
#include "LLlex.h"
#include "file_info.h" #include "file_info.h"
#include "idfsize.h" #include "idfsize.h"
#include "idf.h" #include "idf.h"

View File

@ -8,6 +8,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <alloc.h> #include <alloc.h>
#include "LLlex.h"
#include "idfsize.h" #include "idfsize.h"
#include "class.h" #include "class.h"
#include "macro.h" #include "macro.h"
@ -29,7 +30,7 @@ void do_option(char *text)
{ {
switch(*text++) { switch(*text++) {
case '-': case '-':
options[*text] = 1; options[*(unsigned char *)text] = 1;
break; break;
case 'u': case 'u':
if (! strcmp(text,"ndef")) { if (! strcmp(text,"ndef")) {
@ -42,7 +43,7 @@ void do_option(char *text)
break; break;
case 'C' : /* comment output */ case 'C' : /* comment output */
case 'P' : /* run preprocessor stand-alone, without #'s */ case 'P' : /* run preprocessor stand-alone, without #'s */
options[*(text-1)] = 1; options[*(unsigned char *)(text-1)] = 1;
break; break;
case 'A' : /* for Amake */ case 'A' : /* for Amake */
case 'd' : /* dependency generation */ case 'd' : /* dependency generation */
@ -56,7 +57,7 @@ void do_option(char *text)
break; break;
case 'm': case 'm':
case 'i': case 'i':
options[*(text-1)] = 1; options[*(unsigned char *)(text-1)] = 1;
break; break;
case 'D' : /* -Dname : predefine name */ case 'D' : /* -Dname : predefine name */

View File

@ -27,12 +27,11 @@ void Xflush()
if (do_preprocess) sys_write(STDOUT, _obuf, OBUFSIZE); if (do_preprocess) sys_write(STDOUT, _obuf, OBUFSIZE);
} }
void preprocess(fn) void preprocess(char *fn)
char *fn;
{ {
register int c; int c;
register char *op = _obuf; char *op = _obuf;
register char *ob = &_obuf[OBUFSIZE]; char *ob = &_obuf[OBUFSIZE];
char Xbuf[256]; char Xbuf[256];
int lineno = 0; int lineno = 0;
extern char options[]; extern char options[];
@ -45,7 +44,7 @@ void preprocess(fn)
/* Generate a line directive communicating the /* Generate a line directive communicating the
source filename source filename
*/ */
register char *p = Xbuf; char *p = Xbuf;
sprint(p, "%s 1 \"%s\"\n", sprint(p, "%s 1 \"%s\"\n",
LINE_PREFIX, LINE_PREFIX,
@ -68,7 +67,7 @@ void preprocess(fn)
fn = FileName; fn = FileName;
lineno = LineNumber; lineno = LineNumber;
if (! options['P']) { if (! options['P']) {
register char *p = Xbuf; char *p = Xbuf;
sprint(p, "%s %d \"%s\"\n", sprint(p, "%s %d \"%s\"\n",
LINE_PREFIX, LINE_PREFIX,
@ -140,7 +139,7 @@ void preprocess(fn)
break; break;
case STSTR: case STSTR:
case STCHAR: { case STCHAR: {
register int stopc = c; int stopc = c;
int escaped; int escaped;
do { do {
@ -199,9 +198,9 @@ void preprocess(fn)
case STIDF: { case STIDF: {
extern int idfsize; /* ??? */ extern int idfsize; /* ??? */
char buf[IDFSIZE + 1]; char buf[IDFSIZE + 1];
register char *tg = &buf[0]; char *tg = &buf[0];
register char *maxpos = &buf[idfsize]; char *maxpos = &buf[idfsize];
register struct idf *idef; struct idf *idef;
#define tstmac(bx) if (!(bits[c] & bx)) goto nomac #define tstmac(bx) if (!(bits[c] & bx)) goto nomac
#define cpy if (Unstacked) EnableMacros(); *tg++ = c #define cpy if (Unstacked) EnableMacros(); *tg++ = c

View File

@ -20,6 +20,8 @@
#include "interface.h" #include "interface.h"
#include "file_info.h" #include "file_info.h"
#include "LLlex.h"
#define EOS '\0' #define EOS '\0'
#define overflow() (fatal("actual parameter buffer overflow")) #define overflow() (fatal("actual parameter buffer overflow"))

View File

@ -31,7 +31,6 @@ static char rcsid[] = "$Id$";
#define IND_DBUG(x) (IND_RELO(x) + sizeof(ind_t)) #define IND_DBUG(x) (IND_RELO(x) + sizeof(ind_t))
#endif /* SYMDBUG */ #endif /* SYMDBUG */
extern char *core_alloc();
extern bool incore; extern bool incore;
extern int infile; extern int infile;
extern int passnumber; extern int passnumber;
@ -66,12 +65,10 @@ static void read_modul();
*/ */
int getfile(char *filename) int getfile(char *filename)
{ {
unsigned int rd_unsigned2();
struct ar_hdr archive_header; struct ar_hdr archive_header;
unsigned short magic_number; unsigned short magic_number;
#ifdef SYMDBUG #ifdef SYMDBUG
struct stat statbuf; struct stat statbuf;
extern int fstat();
#endif /* SYMDBUG */ #endif /* SYMDBUG */
archname = (char *)0; archname = (char *)0;
@ -189,7 +186,6 @@ static void scan_modul()
static bool all_alloc() static bool all_alloc()
{ {
struct outhead head; struct outhead head;
extern ind_t hard_alloc();
if (hard_alloc(ALLOMODL, (long)sizeof(struct outhead)) == BADOFF) if (hard_alloc(ALLOMODL, (long)sizeof(struct outhead)) == BADOFF)
fatal("no space for module header"); fatal("no space for module header");
@ -212,8 +208,6 @@ static bool direct_alloc(struct outhead *head)
struct outsect *sects; struct outsect *sects;
unsigned short nsect = head->oh_nsect; unsigned short nsect = head->oh_nsect;
long size, rest; long size, rest;
extern ind_t hard_alloc();
extern ind_t alloc();
#ifdef SYMDBUG #ifdef SYMDBUG
rest = nsect * sizeof(ind_t) + sizeof(ind_t) + sizeof(ind_t); rest = nsect * sizeof(ind_t) + sizeof(ind_t) + sizeof(ind_t);
@ -282,7 +276,6 @@ static bool putemitindex(ind_t sectindex, ind_t emitoff, int allopiece)
{ {
long flen; long flen;
ind_t emitindex; ind_t emitindex;
extern ind_t alloc();
static long zeros[MAXSECT]; static long zeros[MAXSECT];
long zero = zeros[allopiece - ALLOEMIT]; long zero = zeros[allopiece - ALLOEMIT];
@ -320,7 +313,6 @@ static bool putemitindex(ind_t sectindex, ind_t emitoff, int allopiece)
static bool putreloindex(ind_t relooff, long nrelobytes) static bool putreloindex(ind_t relooff, long nrelobytes)
{ {
ind_t reloindex; ind_t reloindex;
extern ind_t alloc();
if ((reloindex = alloc(ALLORELO, nrelobytes)) != BADOFF) { if ((reloindex = alloc(ALLORELO, nrelobytes)) != BADOFF) {
*(ind_t *)modulptr(relooff) = reloindex; *(ind_t *)modulptr(relooff) = reloindex;
@ -335,7 +327,6 @@ static bool putreloindex(ind_t relooff, long nrelobytes)
static bool putdbugindex(ind_t dbugoff, long ndbugbytes) static bool putdbugindex(ind_t dbugoff, long ndbugbytes)
{ {
ind_t dbugindex; ind_t dbugindex;
extern ind_t alloc();
if ((dbugindex = alloc(ALLODBUG, ndbugbytes)) != BADOFF) { if ((dbugindex = alloc(ALLODBUG, ndbugbytes)) != BADOFF) {
*(ind_t *)modulptr(dbugoff) = dbugindex; *(ind_t *)modulptr(dbugoff) = dbugindex;
@ -410,7 +401,6 @@ static void read_modul()
unsigned short nsect, nname; unsigned short nsect, nname;
long size; long size;
long nchar; long nchar;
extern ind_t hard_alloc();
assert(passnumber == SECOND); assert(passnumber == SECOND);
assert(!incore); assert(!incore);
@ -536,7 +526,6 @@ char *getemit(struct outhead *head, struct outsect *sects, int sectindex)
{ {
char *ret; char *ret;
ind_t off; ind_t off;
extern char *core_alloc();
if (!incore) { if (!incore) {
ret = core_alloc(ALLOMODL, sects[sectindex].os_flen); ret = core_alloc(ALLOMODL, sects[sectindex].os_flen);