1 | #ifndef INC_ANTLRUtil_hpp__ |
---|
2 | #define INC_ANTLRUtil_hpp__ |
---|
3 | |
---|
4 | /* ANTLR Translator Generator |
---|
5 | * Project led by Terence Parr at http://www.jGuru.com |
---|
6 | * Software rights: http://www.antlr.org/license.html |
---|
7 | * |
---|
8 | * $Id:$ |
---|
9 | */ |
---|
10 | |
---|
11 | #include <antlr/config.hpp> |
---|
12 | #include <iostream> |
---|
13 | |
---|
14 | #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE |
---|
15 | namespace antlr { |
---|
16 | #endif |
---|
17 | |
---|
18 | /** Eat whitespace from the input stream |
---|
19 | * @param is the stream to read from |
---|
20 | */ |
---|
21 | ANTLR_USE_NAMESPACE(std)istream& eatwhite( ANTLR_USE_NAMESPACE(std)istream& is ); |
---|
22 | |
---|
23 | /** Read a string enclosed by '"' from a stream. Also handles escaping of \". |
---|
24 | * Skips leading whitespace. |
---|
25 | * @param in the istream to read from. |
---|
26 | * @returns the string read from file exclusive the '"' |
---|
27 | * @throws ios_base::failure if string is badly formatted |
---|
28 | */ |
---|
29 | ANTLR_USE_NAMESPACE(std)string read_string( ANTLR_USE_NAMESPACE(std)istream& in ); |
---|
30 | |
---|
31 | /* Read a ([A-Z][0-9][a-z]_)* kindoff thing. Skips leading whitespace. |
---|
32 | * @param in the istream to read from. |
---|
33 | */ |
---|
34 | ANTLR_USE_NAMESPACE(std)string read_identifier( ANTLR_USE_NAMESPACE(std)istream& in ); |
---|
35 | |
---|
36 | /** Read a attribute="value" thing. Leading whitespace is skipped. |
---|
37 | * Between attribute and '=' no whitespace is allowed. After the '=' it is |
---|
38 | * permitted. |
---|
39 | * @param in the istream to read from. |
---|
40 | * @param attribute string the attribute name is put in |
---|
41 | * @param value string the value of the attribute is put in |
---|
42 | * @throws ios_base::failure if something is fishy. E.g. malformed quoting |
---|
43 | * or missing '=' |
---|
44 | */ |
---|
45 | void read_AttributeNValue( ANTLR_USE_NAMESPACE(std)istream& in, |
---|
46 | ANTLR_USE_NAMESPACE(std)string& attribute, |
---|
47 | ANTLR_USE_NAMESPACE(std)string& value ); |
---|
48 | |
---|
49 | #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE |
---|
50 | } |
---|
51 | #endif |
---|
52 | |
---|
53 | #endif |
---|