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

# User Rev Content
1 tim 2469 #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