diff options
Diffstat (limited to 'lib/antlr/antlr/ASTArray.h')
-rw-r--r-- | lib/antlr/antlr/ASTArray.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/antlr/antlr/ASTArray.h b/lib/antlr/antlr/ASTArray.h new file mode 100644 index 00000000..134fc1fb --- /dev/null +++ b/lib/antlr/antlr/ASTArray.h @@ -0,0 +1,45 @@ +#ifndef INC_ASTArray_h__ +#define INC_ASTArray_h__ + +/* ANTLR Translator Generator + * Project led by Terence Parr at http://www.jGuru.com + * Software rights: http://www.antlr.org/license.html + * + * $Id$ + */ + +#include <antlr/config.h> +#include <antlr/AST.h> + +#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE +namespace antlr { +#endif + +/** ASTArray is a class that allows ANTLR to + * generate code that can create and initialize an array + * in one expression, like: + * (new ASTArray(3))->add(x)->add(y)->add(z) + */ +class ANTLR_API ASTArray { +public: + int size; // = 0; + ANTLR_USE_NAMESPACE(std)vector<RefAST> array; + + ASTArray(int capacity) + : size(0) + , array(capacity) + { + } + + ASTArray* add(RefAST node) + { + array[size++] = node; + return this; + } +}; + +#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE +} +#endif + +#endif //INC_ASTArray_h__ |