1998-03-28 02:44:41 +00:00
|
|
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The contents of this file are subject to the Netscape Public
|
|
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.mozilla.org/NPL/
|
1998-03-28 02:44:41 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* Software distributed under the License is distributed on an "AS
|
|
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
* implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
1998-03-28 02:44:41 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The Original Code is mozilla.org code.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape
|
1998-03-28 02:44:41 +00:00
|
|
|
* Communications Corporation. Portions created by Netscape are
|
1999-11-06 03:43:54 +00:00
|
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
|
|
* Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
1998-03-28 02:44:41 +00:00
|
|
|
*/
|
|
|
|
#ifndef __CSS_INTERNAL_H__
|
|
|
|
#define __CSS_INTERNAL_H__
|
|
|
|
|
|
|
|
typedef struct css_nodeRecord {
|
|
|
|
int node_id;
|
|
|
|
char * string;
|
|
|
|
struct css_nodeRecord * left;
|
|
|
|
struct css_nodeRecord * right;
|
|
|
|
} css_nodeRecord, *css_node;
|
|
|
|
|
|
|
|
enum {
|
|
|
|
NODE_IMPORT_LIST = 300,
|
|
|
|
NODE_IMPORT_STRING,
|
|
|
|
NODE_IMPORT_URL,
|
|
|
|
NODE_STRING,
|
|
|
|
NODE_NUMBER,
|
|
|
|
NODE_TERM,
|
|
|
|
NODE_EXPR,
|
|
|
|
NODE_PRIO,
|
|
|
|
NODE_IDENT,
|
|
|
|
NODE_EMS,
|
|
|
|
NODE_LENGTH,
|
|
|
|
NODE_PERCENTAGE,
|
|
|
|
NODE_RGB,
|
|
|
|
NODE_URL,
|
|
|
|
NODE_HEXCOLOR,
|
|
|
|
NODE_DECLARATION_PROPERTY_EXPR_PRIO,
|
|
|
|
NODE_DECLARATION_PROPERTY_EXPR,
|
|
|
|
NODE_ID_SELECTOR,
|
|
|
|
NODE_PSEUDO_ELEMENT,
|
|
|
|
NODE_CLASS,
|
|
|
|
NODE_ACTIVE_PSCLASS,
|
|
|
|
NODE_VISITED_PSCLASS,
|
|
|
|
NODE_LINK_PSCLASS,
|
|
|
|
NODE_SIMPLE_SELECTOR_ID_SELECTOR,
|
|
|
|
NODE_SIMPLE_SELECTOR_DOT_AND_CLASS,
|
|
|
|
NODE_SIMPLE_SELECTOR_NAME_PSEUDO_CLASS,
|
|
|
|
NODE_SIMPLE_SELECTOR_NAME_ONLY,
|
|
|
|
NODE_SIMPLE_SELECTOR_NAME_AND_CLASS,
|
|
|
|
NODE_SIMPLE_SELECTOR_NAME_CLASS_PSEUDO_CLASS,
|
|
|
|
NODE_SIMPLE_SELECTOR_LIST,
|
|
|
|
NODE_SELECTOR,
|
|
|
|
NODE_SELECTOR_CONTEXTUAL,
|
|
|
|
NODE_DECLARATION_LIST,
|
|
|
|
NODE_SELECTOR_LIST,
|
|
|
|
NODE_PROPERTY,
|
|
|
|
NODE_TERM_OP,
|
|
|
|
NODE_EXPR_OP,
|
|
|
|
NODE_EMPTY_OP,
|
|
|
|
NODE_UNARY_OP,
|
|
|
|
NODE_RULESET,
|
|
|
|
NODE_RULESET_LIST,
|
|
|
|
NODE_SIMPLE_SELECTOR_PSEUDO_CLASS,
|
|
|
|
NODE_ELEMENT_NAME,
|
|
|
|
NODE_WILD,
|
|
|
|
NODE_FONTDEF_LIST
|
|
|
|
};
|
|
|
|
|
|
|
|
extern css_node css_tree_root; /* root of parse tree */
|
|
|
|
#ifdef LEX
|
|
|
|
extern unsigned char css_text[];
|
|
|
|
#else
|
|
|
|
extern char *css_text;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern int css_lex(void);
|
|
|
|
extern int css_error(const char * diagnostic);
|
|
|
|
extern int css_parse(void);
|
|
|
|
extern int css_wrap(void);
|
|
|
|
extern void css_GetBuf(char * buf, int * result, int max_to_read);
|
|
|
|
extern void css_FreeNode(css_node node);
|
|
|
|
|
|
|
|
#endif
|