eĿlipsis
a language independent preprocessor
 
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Loading...
Searching...
No Matches
ellipsis-category.h
Go to the documentation of this file.
1
2#ifndef ELLIPSIS_CATEGORY_H
3#define ELLIPSIS_CATEGORY_H 1
4
17typedef unsigned char ellipsis‿category‿base;
18
25# include <ctype.h>
26# include <stddef.h>
27
62
66[[__maybe_unused__]] extern char const*const*const ellipsis‿category‿names;
67
70
80[[__maybe_unused__]]
81inline
82char const* ellipsis‿category‿getname(size_t __LOC_ID_0_1) {
83 if (__LOC_ID_0_1 < 0 || __LOC_ID_0_1 > ellipsis‿category‿max_intern) return "<unknown " "ellipsis∷category" ">";
84 else return ellipsis‿category‿names[__LOC_ID_0_1];
85}
86
87[[__maybe_unused__]] static char const*const ellipsis‿category‿namesbuf_intern [ellipsis‿category‿max_intern] = {
88
89 "none",
90 "character" ,
91 "comment" ,
92 "code" ,
93 "codeblock" ,
94 "directive" ,
95 "macro" ,
96 "removed" ,
97 "frozen" ,
98 "keyword" ,
99 "nominal" ,
100 "numeral" ,
101 "parameter" ,
102 "stringifier" ,
103 "exp_signed" ,
104 "exp_unsigned" ,
105 "string" ,
106 "verbatim" ,
107 "binary" ,
108 "base64" ,
109 "punctuator" ,
110 "peek" ,
111 "keep" ,
112 "paragraph" ,
113 "item" ,
114 "special"
115};
116
117#include "utils/ellipsis-error.h"
118
119constexpr size_t ellipsis‿category‿width = 5;
120
121static_assert(special <= ((1u<<ellipsis‿category‿width)-1));
122
124inline
126 switch (v) {
127 case comment:
128 case verbatim:
129 return true;
130 default:
131 return false;
132 }
133}
134
135#endif
unsigned char ellipsis‿category‿base
Definition ellipsis-category.h:17
bool ellipsis‿category‿is_multiline(ellipsis‿category v)
True, if v is possibly a multi-line construct.
Definition ellipsis-category.h:125
@ ellipsis‿category‿max_intern
Definition ellipsis-category.h:69
ellipsis‿category
An enumeration type ellipsis‿category with the underlying integer type ellipsis‿category‿base.
Definition ellipsis-category.h:32
@ code
Definition ellipsis-category.h:37
@ keep
Definition ellipsis-category.h:56
@ punctuator
Definition ellipsis-category.h:54
@ exp_signed
Definition ellipsis-category.h:48
@ stringifier
Definition ellipsis-category.h:47
@ exp_unsigned
Definition ellipsis-category.h:49
@ frozen
Definition ellipsis-category.h:42
@ codeblock
Definition ellipsis-category.h:38
@ binary
Definition ellipsis-category.h:52
@ nominal
Definition ellipsis-category.h:44
@ item
Definition ellipsis-category.h:58
@ peek
Definition ellipsis-category.h:55
@ base64
Definition ellipsis-category.h:53
@ macro
Definition ellipsis-category.h:40
@ removed
Definition ellipsis-category.h:41
@ none
Definition ellipsis-category.h:34
@ verbatim
Definition ellipsis-category.h:51
@ special
Definition ellipsis-category.h:59
@ comment
Definition ellipsis-category.h:36
@ paragraph
Definition ellipsis-category.h:57
@ keyword
Definition ellipsis-category.h:43
@ numeral
Definition ellipsis-category.h:45
@ parameter
Definition ellipsis-category.h:46
@ directive
Definition ellipsis-category.h:39
@ character
Definition ellipsis-category.h:35
char const *const *const ellipsis‿category‿names
An array with the names of the constants of type ellipsis‿category.
Definition ellipsis-category.c:60
static char const *const ellipsis‿category‿namesbuf_intern[ellipsis‿category‿max_intern]
Definition ellipsis-category.h:87
constexpr size_t ellipsis‿category‿width
Definition ellipsis-category.h:119
char const * ellipsis‿category‿getname(size_t __LOC_ID_0_1)
Return the name of the enumeration constant of type ellipsis‿category at position n,...
Definition ellipsis-category.h:82