NASM 0.96
[platform/upstream/nasm.git] / eval.h
1 /* eval.h   header file for eval.c
2  *
3  * The Netwide Assembler is copyright (C) 1996 Simon Tatham and
4  * Julian Hall. All rights reserved. The software is
5  * redistributable under the licence given in the file "Licence"
6  * distributed in the NASM archive.
7  */
8
9 #ifndef NASM_EVAL_H
10 #define NASM_EVAL_H
11
12 /*
13  * Called once to tell the evaluator what output format is
14  * providing segment-base details, and what function can be used to
15  * look labels up.
16  */
17 void eval_global_info (struct ofmt *output, lfunc lookup_label);
18
19 /*
20  * Called to set the information the evaluator needs: the value of
21  * $ is set from `segment' and `offset' if `labelname' is NULL, and
22  * otherwise the name of the current line's label is set from
23  * `labelname' instead.
24  */
25 void eval_info (char *labelname, long segment, long offset);
26
27 /*
28  * The evaluator itself.
29  */
30 expr *evaluate (scanner sc, void *scprivate, struct tokenval *tv,
31                 int *fwref, int critical, efunc report_error,
32                 struct eval_hints *hints);
33
34 #endif