17#define isSelectorChar(c) \
37 {
true,
'c',
"class",
"classes" },
38 {
true,
's',
"selector",
"selectors" },
39 {
true,
'i',
"id",
"identities" }
86 const int delimiter = c;
94 while (c != EOF && c != delimiter);
118 while (d != EOF && ! (c ==
'*' && d ==
'/'));
157 bool readNextToken =
true;
167 readNextToken =
true;
169 if (token.
type ==
'@')
176 token.
type !=
';' && token.
type !=
'{')
182 readNextToken = useContents && token.
type ==
'{';
203 if (token.
type ==
'[')
210 if (token.
type ==
'[')
212 else if (token.
type ==
']')
222 readNextToken =
false;
236 else if (token.
type ==
'{')
242 if (token.
type ==
'{')
244 else if (token.
type ==
'}')
257 static const char *
const extensions [] = {
"css",
NULL };
int makeTagEntry(const tagEntryInfo *const tag)
void initTagEntry(tagEntryInfo *const e, const char *const name, int kindIndex)
unsigned long int lineNumber
static void parseSelector(vString *const string, const int firstChar)
static void findCssTags(void)
#define isSelectorChar(c)
css.c Token-based parser for CSS definitions Author - Colomban Wendling colomban@geany....
static cssKind classifySelector(const vString *const selector)
parserDefinition * CssParser(void)
static kindDefinition CssKinds[]
static void readToken(tokenInfo *const token)
parserDefinition * parserNew(const char *name)
unsigned long getInputLineNumber(void)
int getcFromInputFile(void)
MIOPos getInputFilePosition(void)
void ungetcToInputFile(int c)
const char *const * extensions
kindDefinition * kindTable
struct sTokenInfo tokenInfo
vString * vStringNew(void)
void vStringDelete(vString *const string)
void vStringCat(vString *const string, const vString *const s)
#define vStringChar(vs, i)
#define vStringClear(string)
#define vStringLength(vs)
static void vStringPut(vString *const string, const int c)