// name, type, dtd info and maybe a setter // this is how we map key-values typedefstruct { constchar *name;
keytype type;
uint allow_array_value : 1;
uint allowedmask; void (DirectiveSet::*set)(void* arg);
FlagType flag_type;
} key;
// Array with valid keys for the directive file staticconst key keys[]; // Marker for outermost moosewings/array staticconst key dir_array_key; // Marker for a directives set (these are "implicit" objects, as in not named) staticconst key dir_key; // Marker for a multi value staticconst key value_array_key;
// A compiler directive shouldn't be able to use more than 5 stack slots. // Example of max stack usage: // depth 1: type_dir_array [ // depth 2: type_directives { // depth 3: type_c1 c1: { // depth 4: type_inline inline: // depth 5: type_value_array [ ... staticconst uint MAX_DEPTH = 5; const key* stack[MAX_DEPTH];
uint depth;
void push_tmp(CompilerDirectives* dir); void clean_tmp();
CompilerDirectives* pop_tmp();
CompilerDirectives* _tmp_top; // temporary storage for dirs while parsing int _tmp_depth; // Number of directives that has been parsed but not installed.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.