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 */
28enum 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
41U_CFUNC UChar32 unescape(UCHARBUF *buf, UErrorCode *status);
42
43U_CFUNC void resetLineNumber(void);
44
45U_CFUNC enum ETokenType
46getNextToken(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