summaryrefslogtreecommitdiff
path: root/eval.h
blob: 26bde15a5f3e54a52bf343e11f9599b188e162d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* eval.h   header file for eval.c
 *
 * The Netwide Assembler is copyright (C) 1996 Simon Tatham and
 * Julian Hall. All rights reserved. The software is
 * redistributable under the licence given in the file "Licence"
 * distributed in the NASM archive.
 */

#ifndef NASM_EVAL_H
#define NASM_EVAL_H

/*
 * Called once to tell the evaluator what output format is
 * providing segment-base details, and what function can be used to
 * look labels up.
 */
void eval_global_info (struct ofmt *output, lfunc lookup_label);

/*
 * Called to set the information the evaluator needs: the value of
 * $ is set from `segment' and `offset' if `labelname' is NULL, and
 * otherwise the name of the current line's label is set from
 * `labelname' instead.
 */
void eval_info (char *labelname, long segment, long offset);

/*
 * The evaluator itself.
 */
expr *evaluate (scanner sc, void *scprivate, struct tokenval *tv,
		int *fwref, int critical, efunc report_error,
		struct eval_hints *hints);

#endif