ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/antlr/ANTLRUtil.hpp
Revision: 2469
Committed: Fri Dec 2 15:38:03 2005 UTC (18 years, 7 months ago) by tim
File size: 1720 byte(s)
Log Message:
End of the Link --> List
Return of the Oject-Oriented
replace yacc/lex parser with antlr parser

File Contents

# Content
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: ANTLRUtil.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
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