getting changes from cakelampvm
[feisty_meow.git] / examples / cpp_grammar_code / CxxToken.hxx
diff --git a/examples/cpp_grammar_code/CxxToken.hxx b/examples/cpp_grammar_code/CxxToken.hxx
deleted file mode 100644 (file)
index 9455f9b..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-#ifndef CXXTOKEN_HXX
-#define CXXTOKEN_HXX
-
-#include <iostream.h>
-#include <stdlib.h>
-
-#define YYSTYPE CxxTokenType
-#define YY_parse_STYPE CxxTokenType
-#define YACC_BANG_TYPE size_t
-#define YACC_MARK_TYPE size_t
-
-#define YACC_BANG() push_bang()
-#define YACC_UNBANG(bangValue, msg) pop_bang(bangValue); yyerrok; yyclearin; yyerror(msg);
-
-#define ERRMSG(a) do { cout << "ERROR -- " << a << endl; increment_error_count(); } while (0)
-
-#ifdef NEEDS_BOOL
-enum bool { false, true };
-#endif
-
-#ifdef BISON_PP_CLASS
-#define PARSE_TOKEN(a) BISON_PP_CLASS::a
-#else
-#define PARSE_TOKEN(a) a
-#endif
-
-extern size_t line_number;
-extern bool c_keywords;
-extern bool echo_line_numbers;
-extern bool echo_line_text;
-extern void increment_error_count();
-extern int tokenMarkDepth;
-
-class CxxToken
-{
-       int _value;
-private:
-       CxxToken(const CxxToken&);
-       CxxToken& operator=(const CxxToken&);
-public:
-       CxxToken(int tokenValue = 0) : _value(tokenValue) {}
-       virtual ~CxxToken() {}
-       int value() const { return _value; }
-};
-
-enum CxxIsTemplate { IS_DEFAULT, IS_TEMPLATE };
-enum CxxIsTree { IS_SCALAR, IS_TREE };
-typedef CxxToken CxxTreeArgument;
-
-class CxxStatement : public CxxToken {};
-typedef CxxStatement CxxDeclaration;
-class CxxExpression : public CxxStatement {};
-class CxxName : public CxxExpression {};
-class CxxTokens : public CxxToken {};
-class CxxMetaObject : public CxxExpression {};
-class CxxMetaStatement : public CxxStatement {};
-
-class CxxStatements : public CxxStatement {};
-typedef CxxStatements CxxDeclarations;
-typedef CxxDeclarations CxxMemberDeclarations;
-typedef CxxExpression CxxTreeExpression;
-
-class CxxKeyword : public CxxName {};
-class CxxDeclSpecifierId : public CxxKeyword {};
-
-class CxxAccessSpecifier : public CxxKeyword {};
-class CxxBaseSpecifier : public CxxToken {};
-class CxxBaseSpecifiers : public CxxTokens {};
-class CxxBrace : public CxxToken {};
-class CxxBuiltInId : public CxxName {};
-class CxxCharacterLiteral : public CxxToken {};
-class CxxClass : public CxxToken {};
-class CxxClassKey : public CxxKeyword {};
-class CxxCondition : public CxxExpression {};
-class CxxCvQualifiers : public CxxDeclSpecifierId {};
-class CxxDeclarator : public CxxToken {};
-typedef CxxExpression CxxDeleteExpression;
-//class CxxDerived : public CxxToken {};
-//class CxxEnum : public CxxToken {};
-class CxxEnumerator : public CxxToken {};
-class CxxEnumerators : public CxxTokens {};
-class CxxExceptionDeclaration : public CxxToken {};
-class CxxExceptionSpecification : public CxxToken {};
-class CxxExpressions : public CxxExpression {};
-class CxxFileId : public CxxToken {};
-class CxxFileIds : public CxxTokens {};
-class CxxFileName : public CxxToken {};
-class CxxFloatingLiteral : public CxxToken {};
-class CxxFunctionBody : public CxxStatement {};
-class CxxFunctionDeclarations : public CxxDeclarations {};
-class CxxHandler : public CxxToken {};
-class CxxHandlers : public CxxTokens {};
-class CxxIdentifier : public CxxName {};
-//class CxxIds : public CxxTokens {};
-class CxxInitializerClause : public CxxExpression {};
-class CxxInitializerClauses : public CxxInitializerClause {};
-class CxxIntegerLiteral : public CxxToken {};
-class CxxLine : public CxxToken {};
-//class CxxList : public CxxTokens {};
-class CxxMemInitializer : public CxxToken {};
-class CxxMemInitializers : public CxxTokens {};
-class CxxMetaClass : public CxxStatement {};
-class CxxMetaFunction : public CxxMetaObject {};
-class CxxMetaInitializer : public CxxToken {};
-class CxxMetaInitializers : public CxxTokens {};
-class CxxMetaParameter : public CxxToken {};
-class CxxMetaParameters : public CxxTokens {};
-//class CxxMetaPrototype : public CxxToken {};
-//class CxxMetaPrototypes : public CxxTokens {};
-class CxxMetaType : public CxxName {};
-class CxxMetaVariable : public CxxMetaObject {};
-class CxxNamespace : public CxxToken {};
-typedef CxxExpression CxxNewExpression;
-class CxxNumberLiteral : public CxxExpression {};
-class CxxParameter : public CxxExpression {};
-class CxxParameters : public CxxExpression {};
-class CxxParenthesised : public CxxToken {};
-class CxxPointerDeclarator : public CxxDeclarator {};
-class CxxPosition : public CxxName {};
-class CxxSegment : public CxxName {};
-class CxxSpacing : public CxxToken {};
-class CxxStrings : public CxxToken {};
-typedef CxxStrings CxxStringLiteral;
-class CxxSubspace : public CxxToken {};
-class CxxSyntaxMacroParameter : public CxxToken {};
-class CxxSyntaxMacroParameters : public CxxTokens {};
-class CxxTemplateArgument : public CxxToken {};
-class CxxTemplateArguments : public CxxTokens {};
-class CxxTemplateParameter : public CxxToken {};
-class CxxTemplateParameters : public CxxTokens {};
-class CxxSimpleTypeParameter : public CxxTemplateParameter {};
-class CxxTemplatedTypeParameter : public CxxTemplateParameter {};
-class CxxTokenStatements : public CxxTokens {};
-class CxxTreeArguments : public CxxTokens {};
-class CxxType1Parameters : public CxxTokens {};
-class CxxTypeId : public CxxToken {};
-class CxxTypeIds : public CxxTokens {};
-class CxxUtility : public CxxToken {};
-
-#define FOGPARSERVALUE_ENUM(T,N) \
-       const T *name2(u_,N); \
-       const T& N() const { return *name2(u_,N); } \
-       const T* & N() { return name2(u_,N); }
-#define FOGPARSERVALUE_POINTER(T,N) T *N;
-#define FOGPARSERVALUE_VALUE(T,N) T N;
-
-union CxxTokenType
-{
-               CxxToken *_token;
-
-               FOGPARSERVALUE_VALUE(bool, _bool)
-               FOGPARSERVALUE_VALUE(long, _long)
-               FOGPARSERVALUE_POINTER(CxxBrace, brace)
-               FOGPARSERVALUE_POINTER(CxxSpacing, spacing)
-
-               FOGPARSERVALUE_POINTER(CxxAccessSpecifier, access_specifier)
-               FOGPARSERVALUE_POINTER(CxxBaseSpecifier, base_specifier)
-               FOGPARSERVALUE_POINTER(CxxBaseSpecifiers, base_specifiers)
-               FOGPARSERVALUE_POINTER(CxxBuiltInId, built_in_id)
-               FOGPARSERVALUE_POINTER(CxxCharacterLiteral, character_literal)
-               FOGPARSERVALUE_POINTER(CxxClass, _class)
-               FOGPARSERVALUE_POINTER(CxxClassKey, class_key)
-               FOGPARSERVALUE_POINTER(CxxCondition, condition)
-               FOGPARSERVALUE_POINTER(CxxCvQualifiers, cv_qualifiers)
-               FOGPARSERVALUE_POINTER(CxxDeclSpecifierId, decl_specifier_id)
-               FOGPARSERVALUE_POINTER(CxxDeclaration, declaration)
-               FOGPARSERVALUE_POINTER(CxxDeclarations, declarations)
-               FOGPARSERVALUE_POINTER(CxxDeclarator, declarator)
-               FOGPARSERVALUE_POINTER(CxxDeleteExpression, delete_expression)
-               FOGPARSERVALUE_POINTER(CxxEnumerator, enumerator)
-               FOGPARSERVALUE_POINTER(CxxEnumerators, enumerators)
-               FOGPARSERVALUE_POINTER(CxxExceptionDeclaration, exception_declaration)
-               FOGPARSERVALUE_POINTER(CxxExceptionSpecification, exception_specification)
-               FOGPARSERVALUE_POINTER(CxxExpression, expression)
-               FOGPARSERVALUE_POINTER(CxxExpressions, expressions)
-               FOGPARSERVALUE_POINTER(CxxFileId, file_id)
-               FOGPARSERVALUE_POINTER(CxxFileIds, file_ids)
-               FOGPARSERVALUE_POINTER(CxxFileName, file_name)
-               FOGPARSERVALUE_POINTER(CxxFloatingLiteral, floating_literal)
-               FOGPARSERVALUE_POINTER(CxxFunctionBody, function_body)
-               FOGPARSERVALUE_POINTER(CxxHandler, handler)
-               FOGPARSERVALUE_POINTER(CxxHandlers, handlers)
-               FOGPARSERVALUE_POINTER(CxxIdentifier, identifier)
-               FOGPARSERVALUE_POINTER(CxxInitializerClause, initializer_clause)
-               FOGPARSERVALUE_POINTER(CxxInitializerClauses, initializer_clauses)
-               FOGPARSERVALUE_POINTER(CxxIntegerLiteral, integer_literal)
-               FOGPARSERVALUE_POINTER(CxxKeyword, keyword)
-               FOGPARSERVALUE_POINTER(CxxLine, line)
-               FOGPARSERVALUE_POINTER(CxxMemInitializer, mem_initializer)
-               FOGPARSERVALUE_POINTER(CxxMemInitializers, mem_initializers)
-               FOGPARSERVALUE_POINTER(CxxMemberDeclarations, member_declarations)
-               FOGPARSERVALUE_POINTER(CxxMetaClass, meta_class)
-               FOGPARSERVALUE_POINTER(CxxMetaFunction, meta_function)
-               FOGPARSERVALUE_POINTER(CxxMetaInitializer, meta_initializer)
-               FOGPARSERVALUE_POINTER(CxxMetaInitializers, meta_initializers)
-               FOGPARSERVALUE_POINTER(CxxMetaObject, meta_object)
-               FOGPARSERVALUE_POINTER(CxxMetaStatement, meta_statement)
-               FOGPARSERVALUE_POINTER(CxxMetaType, meta_type)
-               FOGPARSERVALUE_POINTER(CxxMetaVariable, meta_variable)
-               FOGPARSERVALUE_POINTER(CxxName, name)
-               FOGPARSERVALUE_POINTER(CxxNewExpression, new_expression)
-               FOGPARSERVALUE_POINTER(CxxNumberLiteral, number_literal)
-               FOGPARSERVALUE_POINTER(CxxParameter, parameter)
-               FOGPARSERVALUE_POINTER(CxxParameters, parameters)
-               FOGPARSERVALUE_POINTER(CxxParenthesised, parenthesised)
-               FOGPARSERVALUE_POINTER(CxxPointerDeclarator, pointer_declarator)
-               FOGPARSERVALUE_POINTER(CxxPosition, position)
-               FOGPARSERVALUE_POINTER(CxxSegment, segment)
-               FOGPARSERVALUE_POINTER(CxxSimpleTypeParameter, simple_type_parameter)
-               FOGPARSERVALUE_POINTER(CxxStatement, statement)
-               FOGPARSERVALUE_POINTER(CxxStatements, statements)
-               FOGPARSERVALUE_POINTER(CxxStringLiteral, string_literal)
-               FOGPARSERVALUE_POINTER(CxxStrings, strings)
-               FOGPARSERVALUE_POINTER(CxxSubspace, subspace)
-               FOGPARSERVALUE_POINTER(CxxSyntaxMacroParameter, syntax_macro_parameter)
-               FOGPARSERVALUE_POINTER(CxxSyntaxMacroParameters, syntax_macro_parameters)
-               FOGPARSERVALUE_POINTER(CxxTemplateArgument, template_argument)
-               FOGPARSERVALUE_POINTER(CxxTemplateArguments, template_arguments)
-               FOGPARSERVALUE_POINTER(CxxTemplateParameter, template_parameter)
-               FOGPARSERVALUE_POINTER(CxxTemplateParameters, template_parameters)
-               FOGPARSERVALUE_POINTER(CxxTemplatedTypeParameter, templated_type_parameter)
-               FOGPARSERVALUE_POINTER(CxxToken, token)
-               FOGPARSERVALUE_POINTER(CxxTokenStatements, token_statements)
-               FOGPARSERVALUE_POINTER(CxxTokens, tokens)
-               FOGPARSERVALUE_POINTER(CxxTreeArgument, tree_argument)
-               FOGPARSERVALUE_POINTER(CxxTreeArguments, tree_arguments)
-               FOGPARSERVALUE_POINTER(CxxTreeExpression, tree_expression)
-               FOGPARSERVALUE_POINTER(CxxType1Parameters, type1_parameters)
-               FOGPARSERVALUE_POINTER(CxxUtility, utility)
-
-               FOGPARSERVALUE_VALUE(int, bang)
-               FOGPARSERVALUE_VALUE(CxxIsTemplate, is_template)
-               FOGPARSERVALUE_VALUE(YACC_MARK_TYPE, mark)
-               FOGPARSERVALUE_VALUE(size_t, nest)
-#if 0
-       CxxAccessSpecifier *access_specifier;
-       CxxBaseSpecifier *base_specifier;
-       CxxBaseSpecifiers *base_specifiers;
-       CxxBuiltInId *built_in_id;
-       CxxCharacterLiteral *character_literal;
-       CxxClass *_class;
-       CxxClassKey *class_key;
-       CxxCondition *condition;
-       CxxCvQualifiers *cv_qualifiers;
-       CxxDeclaration *declaration;
-       CxxDeclarations *declarations;
-       CxxDeclarator *declarator;
-       CxxDeclSpecifierId *decl_specifier_id;
-//     CxxDerived *derived;
-//     CxxEnum *_enum;
-       CxxEnumerator *enumerator;
-       CxxEnumerators *enumerators;
-       CxxExceptionDeclaration *exception_declaration;
-       CxxExceptionSpecification *exception_specification;
-       CxxExpression *expression;
-       CxxExpressions *expressions;
-       CxxFileId *file_id;
-       CxxFileIds *file_ids;
-       CxxFileName *file_name;
-       CxxFloatingLiteral *floating_literal;
-       CxxFunctionBody *function_body;
-       CxxFunctionDeclarations *function_declarations;
-       CxxHandler *handler;
-       CxxHandlers *handlers;
-       CxxIdentifier *identifier;
-//     CxxIds *ids;
-       CxxInitializerClause *initializer_clause;
-       CxxInitializerClauses *initializer_clauses;
-       CxxIntegerLiteral *integer_literal;
-       CxxKeyword *keyword;
-       CxxLine *line;
-//     CxxList *list;
-       CxxMemInitializer *mem_initializer;
-       CxxMemInitializers *mem_initializers;
-       CxxMemberDeclarations *member_declarations;
-       CxxMetaClass *meta_class;
-//     CxxMetaFunction *meta_function;
-//     CxxMetaInitializer *meta_initializer;
-//     CxxMetaInitializers *meta_initializers;
-//     CxxMetaObject *meta_object;
-       CxxMetaParameter *meta_parameter;
-       CxxMetaParameters *meta_parameters;
-//     CxxMetaPrototype *meta_prototype;
-//     CxxMetaPrototypes *meta_prototypes;
-//     CxxMetaStatement *meta_statement;
-       CxxMetaType *meta_type;
-//     CxxMetaVariable *meta_variable;
-       CxxName *name;
-//     CxxNamespace *_namespace;
-       CxxNumberLiteral *number_literal;
-       CxxParameter *parameter;
-       CxxParameters *parameters;
-       CxxParenthesised *parenthesised;
-       CxxPointerDeclarator *pointer_declarator;
-       CxxSegment *segment;
-       CxxSimpleTypeParameter *simple_type_parameter;
-       CxxStatement *statement;
-       CxxStatements *statements;
-       CxxStringLiteral *string_literal;
-       CxxStrings *strings;
-       CxxSyntaxMacroParameter *syntax_macro_parameter;
-       CxxSyntaxMacroParameters *syntax_macro_parameters;
-       CxxTemplateArgument *template_argument;
-       CxxTemplateArguments *template_arguments;
-       CxxTemplateParameter *template_parameter;
-       CxxTemplateParameters *template_parameters;
-       CxxTemplatedTypeParameter *templated_type_parameter;
-       CxxToken *token;
-       CxxTokens *tokens;
-//     CxxTreeArgument *tree_argument;
-//     CxxTreeArguments *tree_arguments;
-//     CxxTreeExpression *tree_expression;
-       CxxType1Parameters *type1_parameters;
-//     CxxTypeId *type_id;
-//     CxxTypeIds *type_ids;
-       CxxUtility *utility;
-       YACC_BANG_TYPE bang;
-       YACC_MARK_TYPE mark;
-       size_t nest;
-#endif
-};
-
-class CxxNaffToken : public CxxToken
-{
-       typedef CxxToken Super;
-       char *_text;
-       int _leng;
-private:
-       CxxNaffToken(const CxxNaffToken&);
-       CxxNaffToken& operator=(const CxxNaffToken&);
-public:
-       CxxNaffToken(int tokenValue, const char *yyText, int yyLeng);
-       virtual ~CxxNaffToken();
-};
-
-#endif