⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanner.h

📁 一个很有名的浏览器
💻 H
字号:
/* $Id: scanner.h,v 1.66 2004/02/01 16:43:43 jonas Exp $ */#ifndef EL__DOCUMENT_CSS_SCANNER_H#define EL__DOCUMENT_CSS_SCANNER_H#include "util/scanner.h"/* The various token types and what they contain. Patterns taken from * the flex scanner declarations in the CSS 2 Specification. */enum css_token_type {	/* Char tokens: */	/* Char tokens range from 1 to 255 and have their char value as type */	/* meaning non char tokens have values from 256 and up. */	/* Low level string tokens: */	/* {...} means char group, <...> means token */	/* {identstart}	[a-z_]|{nonascii} */	/* {ident}	[a-z0-9_-]|{nonascii} */	/* <ident>	{identstart}{ident}* */	/* <name>	{ident}+ */	/* <number>	[0-9]+|[0-9]*"."[0-9]+ */	/* Percentage is put because although it looks like being composed of	 * <number> and '%' floating point numbers are really not allowed but	 * strtol() will round it down for us ;) */	CSS_TOKEN_IDENT = 256,	/* <ident> */	CSS_TOKEN_NUMBER,	/* <number> */	CSS_TOKEN_PERCENTAGE,	/* <number>% */	CSS_TOKEN_STRING,	/* Char sequence delimted by matching ' or " */	/* High level string tokens: */	/* The various number values; dimension being the most generic */	CSS_TOKEN_ANGLE,	/* <number>rad, <number>grad or <number>deg */	CSS_TOKEN_DIMENSION,	/* <number><ident> */	CSS_TOKEN_EM,		/* <number>em */	CSS_TOKEN_EX,		/* <number>ex */	CSS_TOKEN_FREQUENCY,	/* <number>Hz or <number>kHz */	CSS_TOKEN_LENGTH,	/* <number>{px,cm,mm,in,pt,pc} */	CSS_TOKEN_TIME,		/* <number>ms or <number>s */	/* XXX: CSS_TOKEN_HASH conflicts with CSS_TOKEN_HEX_COLOR. Generating	 * hex color tokens has precedence and the hash token user have to	 * treat CSS_TOKEN_HASH and CSS_TOKEN_HEX_COLOR alike. */	CSS_TOKEN_HASH,		/* #<name> */	CSS_TOKEN_HEX_COLOR,	/* #[0-9a-f]\{3,6} */	/* For all unknown functions we generate on token contain both function name	 * and args so scanning/parsing is easier. Besides we already check for	 * ending ')'. */	/* For known functions where we need several args [like rgb()] we want	 * to generate tokens for every arg and arg delimiter ( ',' or ')' ).	 * Because url() is a bit triggy: it can contain both <string> and some	 * chars that would other wise make the scanner probably choke we also	 * include the arg in that token. Besides it will make things like	 * 'background' property parsing easier. */	CSS_TOKEN_FUNCTION,	/* <ident>(<args>) */	CSS_TOKEN_RGB,		/* rgb( */	CSS_TOKEN_URL,		/* url(<arg>) */	/* @-rule symbols */	CSS_TOKEN_AT_KEYWORD,	/* @<ident> */	CSS_TOKEN_AT_CHARSET,	/* @charset */	CSS_TOKEN_AT_FONT_FACE,	/* @font-face */	CSS_TOKEN_AT_IMPORT,	/* @import */	CSS_TOKEN_AT_MEDIA,	/* @media */	CSS_TOKEN_AT_PAGE,	/* @page */	CSS_TOKEN_IMPORTANT,	/* !<whitespace>important */	/* TODO: Selector stuff like "|=" and "~=" */	/* Special tokens: */	/* A special token for unrecognized strings */	CSS_TOKEN_GARBAGE,	/* Token type used internally when scanning to signal that the token	 * should not be recorded in the scanners token table. */	CSS_TOKEN_SKIP,	/* Another internal token type used both to mark unused tokens in the	 * scanner table as invalid or when scanning to signal that the	 * scanning should end. */	CSS_TOKEN_NONE = 0,};extern struct scanner_info css_scanner_info;#define skip_css_tokens(scanner, type) \	skip_scanner_tokens(scanner, type, get_css_precedence(type))#define get_css_precedence(token_type) \	((token_type) == '}' ? (1 << 10) : \	 (token_type) == '{' ? (1 <<  9) : \	 (token_type) == ';' ? (1 <<  8) : \	 (token_type) == ')' ? (1 <<  7) : 0)/* Check whether it is safe to skip the @token when looking for @skipto. */static inline intcheck_css_precedence(int type, int skipto){	return get_css_precedence(type) < get_css_precedence(skipto);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -