1
// Inferno utils/8a/a.h
2
// http://code.google.com/p/inferno-os/source/browse/utils/8a/a.h
4
// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
5
// Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
6
// Portions Copyright © 1997-1999 Vita Nuova Limited
7
// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
8
// Portions Copyright © 2004,2006 Bruce Ellis
9
// Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
10
// Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
11
// Portions Copyright © 2009 The Go Authors. All rights reserved.
13
// Permission is hereby granted, free of charge, to any person obtaining a copy
14
// of this software and associated documentation files (the "Software"), to deal
15
// in the Software without restriction, including without limitation the rights
16
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
// copies of the Software, and to permit persons to whom the Software is
18
// furnished to do so, subject to the following conditions:
20
// The above copyright notice and this permission notice shall be included in
21
// all copies or substantial portions of the Software.
23
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
34
#include "../8l/8.out.h"
46
#define ungetc ccungetc
48
typedef struct Sym Sym;
49
typedef struct Ref Ref;
50
typedef struct Gen Gen;
52
typedef struct Hist Hist;
53
typedef struct Gen2 Gen2;
62
#define GETC() ((--fi.c < 0)? filbuf(): *fi.p++ & 0xff)
141
EXTERN char debug[256];
142
EXTERN Sym* hash[NHASH];
149
EXTERN char** include;
159
EXTERN char* outfile;
161
EXTERN char* pathname;
164
EXTERN int32 stmtline;
168
EXTERN char* thestring;
173
void* allocn(void*, int32, int32);
174
void ensuresymb(int32);
175
void errorexit(void);
178
void newfile(char*, int);
188
void checkscale(int);
192
void outcode(int, Gen2*);
194
void zaddr(Gen*, int);
195
void zname(char*, int, int);
196
void ieeedtod(Ieee*, double);
202
void macexpand(Sym*, char*);
208
void dodefine(char*);
210
void linehist(char*, int);
212
void yyerror(char*, ...);
214
void setinclude(char*);