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

📄 parser.h

📁 一个很有名的浏览器
💻 H
字号:
/* $Id: parser.h,v 1.76.2.2 2005/05/01 22:47:55 jonas Exp $ */#ifndef EL__DOCUMENT_HTML_PARSER_H#define EL__DOCUMENT_HTML_PARSER_H#include "util/align.h"#include "util/color.h"#include "util/lists.h"struct document_options;struct form_control;struct frameset_desc;struct memory_list;struct menu_item;struct part;struct session;struct string;struct terminal;struct uri;/* XXX: This is just terible - this interface is from 75% only for other HTML * files - there's lack of any well defined interface and it's all randomly * mixed up :/. */enum format_attr {	AT_BOLD = 1,	AT_ITALIC = 2,	AT_UNDERLINE = 4,	AT_FIXED = 8,	AT_GRAPHICS = 16,	AT_SUBSCRIPT = 32,	AT_SUPERSCRIPT = 64,	AT_PREFORMATTED = 128,};struct text_attrib_style {	enum format_attr attr;	color_t fg;	color_t bg;};struct text_attrib {	struct text_attrib_style style;	int fontsize;	unsigned char *link;	unsigned char *target;	unsigned char *image;	unsigned char *title;	struct form_control *form;	color_t clink;	color_t vlink;#ifdef CONFIG_BOOKMARKS	color_t bookmark_link;#endif	color_t image_link;	unsigned char *select;	int select_disabled;	unsigned int tabindex;	long accesskey;	unsigned char *onclick;	unsigned char *ondblclick;	unsigned char *onmouseover;	unsigned char *onhover;	unsigned char *onfocus;	unsigned char *onmouseout;	unsigned char *onblur;};/* This enum is pretty ugly, yes ;). */enum format_list_flag {	P_NONE = 0,	P_NUMBER = 1,	P_alpha = 2,	P_ALPHA = 3,	P_roman = 4,	P_ROMAN = 5,	P_STAR = 1,	P_O = 2,	P_PLUS = 3,	P_LISTMASK = 7,	P_COMPACT = 8,};struct par_attrib {	enum format_align align;	int leftmargin;	int rightmargin;	int width;	int list_level;	unsigned list_number;	int dd_margin;	enum format_list_flag flags;	color_t bgcolor;};/* HTML parser stack mortality info */enum html_element_type {	/* Elements of this type can not be removed from the stack. This type	 * is created by the renderer when formatting a HTML part. */	ELEMENT_IMMORTAL,	/* Elements of this type can only be removed by elements of the start	 * type. This type is created whenever a HTML state is created using	 * init_html_parser_state(). */	/* The element has been created by*/	ELEMENT_DONT_KILL,	/* These elements can safely be removed from the stack by both */	ELEMENT_KILLABLE,	/* These elements not only cannot bear any other elements inside but	 * any attempt to do so will cause them to terminate. This is so deadly	 * that it affects even invisible elements. Ie. <title>foo<body>. */	ELEMENT_WEAK,};struct html_element {	LIST_HEAD(struct html_element);	enum html_element_type type;	struct text_attrib attr;	struct par_attrib parattr;	int invisible;	unsigned char *name;	int namelen;	unsigned char *options;	int linebreak;	struct frameset_desc *frameset;	/* For the needs of CSS engine. A wannabe bitmask. */	enum html_element_pseudo_class {		ELEMENT_LINK = 1,		ELEMENT_VISITED = 2,	} pseudo_class;};enum html_special_type {	SP_TAG,	SP_FORM,	SP_CONTROL,	SP_TABLE,	SP_USED,	SP_FRAMESET,	SP_FRAME,	SP_NOWRAP,	SP_CACHE_CONTROL,	SP_CACHE_EXPIRES,	SP_REFRESH,	SP_STYLESHEET,	SP_COLOR_LINK_LINES,	SP_SCRIPT,};/* Interface for the renderer */voidinit_html_parser(struct uri *uri, struct document_options *options,		 unsigned char *start, unsigned char *end,		 struct string *head, struct string *title,		 void (*put_chars)(struct part *, unsigned char *, int),		 void (*line_break)(struct part *),		 void *(*special)(struct part *, enum html_special_type, ...));void done_html_parser(void);struct html_element *init_html_parser_state(enum html_element_type type, int align, int margin, int width);void done_html_parser_state(struct html_element *element);/* Interface for the table handling */int get_bgcolor(unsigned char *, color_t *);void set_fragment_identifier(unsigned char *attr_name, unsigned char *attr);void add_fragment_identifier(struct part *, unsigned char *attr);/* Interface for the viewer */intget_image_map(unsigned char *head, unsigned char *pos, unsigned char *eof,	      struct menu_item **menu, struct memory_list **ml, struct uri *uri,	      unsigned char *target_base, int to, int def, int hdef);/* For html/parser/forms.c,link.c,parse.c,stack.c */void ln_break(int n, void (*line_break)(struct part *), struct part *part);#ifdef CONFIG_ECMASCRIPTint do_html_script(unsigned char *attr, unsigned char *html, unsigned char *eof, unsigned char **end, struct part *part);#endif#endif

⌨️ 快捷键说明

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