ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/antlr/ASTArray.hpp
Revision: 2469
Committed: Fri Dec 2 15:38:03 2005 UTC (18 years, 7 months ago) by tim
File size: 875 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_ASTArray_hpp__
2 #define INC_ASTArray_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: ASTArray.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
9 */
10
11 #include <antlr/config.hpp>
12 #include <antlr/AST.hpp>
13
14 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
15 namespace antlr {
16 #endif
17
18 /** ASTArray is a class that allows ANTLR to
19 * generate code that can create and initialize an array
20 * in one expression, like:
21 * (new ASTArray(3))->add(x)->add(y)->add(z)
22 */
23 class ANTLR_API ASTArray {
24 public:
25 int size; // = 0;
26 ANTLR_USE_NAMESPACE(std)vector<RefAST> array;
27
28 ASTArray(int capacity)
29 : size(0)
30 , array(capacity)
31 {
32 }
33
34 ASTArray* add(RefAST node)
35 {
36 array[size++] = node;
37 return this;
38 }
39 };
40
41 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
42 }
43 #endif
44
45 #endif //INC_ASTArray_hpp__