analyzerCounter (2520B)
1 /* -*- C++ -*- vim: set syntax=cpp: 2 * (C) Frank-Rene Schaefer */ 3 #ifndef __QUEX_INCLUDE_GUARD__ANALYZER__COUNTER 4 #define __QUEX_INCLUDE_GUARD__ANALYZER__COUNTER 5 6 #if ! defined(__QUEX_OPTION_PLAIN_C) 7 # include <cstddef> 8 #else 9 # include <stddef.h> 10 #endif 11 #include "definitions" 12 13 QUEX_NAMESPACE_MAIN_OPEN 14 15 # if defined(QUEX_OPTION_INDENTATION_TRIGGER) 16 typedef struct QUEX_SETTING_USER_CLASS_DECLARATION_EPILOG { 17 QUEX_TYPE_INDENTATION front[QUEX_SETTING_INDENTATION_STACK_SIZE]; 18 QUEX_TYPE_INDENTATION* back; /* pointer to last element */ 19 QUEX_TYPE_INDENTATION* memory_end; 20 } QUEX_NAME(IndentationStack); 21 22 QUEX_INLINE void 23 QUEX_NAME(IndentationStack_init)(QUEX_NAME(IndentationStack)* me); 24 # endif 25 26 typedef struct QUEX_SETTING_USER_CLASS_DECLARATION_EPILOG { 27 # ifdef QUEX_OPTION_LINE_NUMBER_COUNTING 28 size_t _line_number_at_begin; /* line where current pattern starts */ 29 size_t _line_number_at_end; /* line after current pattern */ 30 # endif 31 # ifdef QUEX_OPTION_COLUMN_NUMBER_COUNTING 32 size_t _column_number_at_begin; /* column where current pattern starts */ 33 size_t _column_number_at_end; /* column after current pattern */ 34 # endif 35 # ifdef QUEX_OPTION_INDENTATION_TRIGGER 36 QUEX_NAME(IndentationStack) _indentation_stack; 37 # endif 38 } QUEX_NAME(Counter); 39 40 41 QUEX_INLINE void QUEX_NAME(Counter_construct)(QUEX_NAME(Counter)* me); 42 QUEX_INLINE void QUEX_NAME(Counter_copy_construct)(QUEX_NAME(Counter)* me, 43 const QUEX_NAME(Counter)* That); 44 45 #if 0 46 /* General Count: All involved characters for column counting do have the same width. */ 47 QUEX_INLINE void QUEX_NAME(Counter_count)(QUEX_NAME(Counter)* me, 48 const QUEX_TYPE_LEXATOM* Lexeme, 49 const QUEX_TYPE_LEXATOM* LexemeEnd); 50 QUEX_INLINE void QUEX_NAME(Counter_count_newlines)(QUEX_NAME(Counter)* me, 51 const QUEX_TYPE_LEXATOM* Lexeme, 52 const QUEX_TYPE_LEXATOM* LexemeEnd); 53 #endif 54 55 56 QUEX_INLINE void QUEX_NAME(Counter_print_this)(QUEX_NAME(Counter)* me); 57 58 QUEX_NAMESPACE_MAIN_CLOSE 59 60 #endif /* __QUEX_INCLUDE_GUARD__ANALYZER__COUNTER */ 61