1 /*
2 *******************************************************************************
3 *
4 *   Copyright (C) 1998-2011, International Business Machines
5 *   Corporation and others.  All Rights Reserved.
6 *
7 *******************************************************************************
8 *
9 * File read.h
10 *
11 * Modification History:
12 *
13 *   Date        Name        Description
14 *   05/26/99    stephen     Creation.
15 *   5/10/01     Ram         removed ustdio dependency
16 *******************************************************************************
17 */
18 
19 #ifndef READ_H
20 #define READ_H 1
21 
22 #include "unicode/utypes.h"
23 #include "ustr.h"
24 #include "ucbuf.h"
25 
26 /* The types of tokens which may be returned by getNextToken.
27    NOTE: Keep these in sync with tokenNames in parse.c */
28 enum ETokenType
29 {
30     TOK_STRING,          /* A string token, such as "MonthNames" */
31     TOK_OPEN_BRACE,      /* An opening brace character */
32     TOK_CLOSE_BRACE,     /* A closing brace character */
33     TOK_COMMA,           /* A comma */
34     TOK_COLON,           /* A colon */
35 
36     TOK_EOF,             /* End of the file has been reached successfully */
37     TOK_ERROR,           /* An error, such an unterminated quoted string */
38     TOK_TOKEN_COUNT      /* Number of "real" token types */
39 };
40 
41 U_CFUNC UChar32 unescape(UCHARBUF *buf, UErrorCode *status);
42 
43 U_CFUNC void resetLineNumber(void);
44 
45 U_CFUNC enum ETokenType
46 getNextToken(UCHARBUF *buf,
47              struct UString *token,
48              uint32_t *linenumber, /* out: linenumber of token */
49              struct UString *comment,
50              UErrorCode *status);
51 
52 #endif
53