Initial revision
[bpt/emacs.git] / src / ccl.h
1 /* Header for CCL (Code Conversion Language) interpreter.
2
3 Copyright (C) 1995 Free Software Foundation, Inc.
4 Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20 #ifndef _CCL_H
21 #define _CCL_H
22
23 /* Structure to hold information about running CCL code. Read
24 comments in the file ccl.c for the detail of each field. */
25 struct ccl_program {
26 int size; /* Size of the compiled code. */
27 Lisp_Object *prog; /* Pointer into the compiled code. */
28 int ic; /* Instruction Counter (index for PROG). */
29 int eof_ic; /* Instruction Counter for end-of-file
30 processing code. */
31 int reg[8]; /* CCL registers, reg[7] is used for
32 condition flag of relational
33 operations. */
34 int last_block; /* Set to 1 while processing the last
35 block. */
36 int status; /* Exit status of the CCL program. */
37 int buf_magnification; /* Output buffer magnification. How
38 many times bigger the output buffer
39 should be than the input buffer. */
40 };
41
42 /* This data type is used for the spec field of the structure
43 coding_system. */
44
45 struct ccl_spec {
46 struct ccl_program decoder;
47 struct ccl_program encoder;
48 };
49
50 /* Alist of fontname patterns vs corresponding CCL program. */
51 extern Lisp_Object Vfont_ccl_encoder_alist;
52
53 #endif /* _CCL_H */