diff options
Diffstat (limited to 'Zend/zend_highlight.c')
-rw-r--r-- | Zend/zend_highlight.c | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c deleted file mode 100644 index c68542c0d1..0000000000 --- a/Zend/zend_highlight.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) 1998, 1999 Andi Gutmans, Zeev Suraski | - +----------------------------------------------------------------------+ - | This source file is subject to version 0.91 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available at through the world-wide-web at | - | http://www.zend.com/license/0_91.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans <andi@zend.com> | - | Zeev Suraski <zeev@zend.com> | - +----------------------------------------------------------------------+ -*/ - - -#include "zend.h" -#include "zend-parser.h" -#include "zend_compile.h" -#include "zend_highlight.h" -#include "zend_ptr_stack.h" -#include "zend_globals.h" - -#ifndef ZTS -extern char *zendtext; -extern int zendleng; -#else -#define zendtext ((char *) zend_get_zendtext(CLS_C)) -#define zendleng zend_get_zendleng(CLS_C) -#endif - -static void html_putc(char c) -{ - switch (c) { - case '\n': - ZEND_PUTS("<br>"); - break; - case '<': - ZEND_PUTS("<"); - break; - case '>': - ZEND_PUTS(">"); - break; - case '&': - ZEND_PUTS("&"); - break; - case ' ': - ZEND_PUTS(" "); - break; - case '\t': - ZEND_PUTS(" "); - break; - default: - ZEND_PUTC(c); - break; - } -} - - -static void html_puts(char *s, uint len) -{ - register char *ptr=s, *end=s+len; - - while (ptr<end) { - html_putc(*ptr++); - } -} - - - -ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini) -{ - zval token; - int token_type; - char *last_color = syntax_highlighter_ini->highlight_html; - char *next_color; - int in_string=0; - CLS_FETCH(); - - zend_printf("<font color=\"%s\">\n", last_color); - /* highlight stuff coming back from zendlex() */ - token.type = 0; - while ((token_type=lex_scan(&token CLS_CC))) { - switch (token_type) { - case T_INLINE_HTML: - next_color = syntax_highlighter_ini->highlight_html; - break; - case T_COMMENT: - next_color = syntax_highlighter_ini->highlight_comment; - break; - case T_OPEN_TAG: - next_color = syntax_highlighter_ini->highlight_default; - break; - case T_CLOSE_TAG: - next_color = syntax_highlighter_ini->highlight_default; - break; - case T_CONSTANT_ENCAPSED_STRING: - next_color = syntax_highlighter_ini->highlight_string; - break; - case '"': - next_color = syntax_highlighter_ini->highlight_string; - in_string = !in_string; - break; - case T_WHITESPACE: - html_puts(zendtext, zendleng); /* no color needed */ - token.type = 0; - continue; - break; - default: - if (token.type==0) { - next_color = syntax_highlighter_ini->highlight_keyword; - } else { - if (in_string) { - next_color = syntax_highlighter_ini->highlight_string; - } else { - next_color = syntax_highlighter_ini->highlight_default; - } - } - break; - } - - if (last_color != next_color) { - if (last_color != syntax_highlighter_ini->highlight_html) { - zend_printf("</font>"); - } - last_color = next_color; - if (last_color != syntax_highlighter_ini->highlight_html) { - zend_printf("<font color=\"%s\">", last_color); - } - } - switch (token_type) { - case T_DOLLAR_OPEN_CURLY_BRACES: - html_puts("{", 1); - break; - default: - html_puts(zendtext, zendleng); - break; - } - - if (token.type == IS_STRING) { - switch (token_type) { - case T_OPEN_TAG: - case T_CLOSE_TAG: - case T_WHITESPACE: - break; - default: - efree(token.value.str.val); - break; - } - } - token.type = 0; - } - if (last_color != syntax_highlighter_ini->highlight_html) { - zend_printf("</font>\n"); - } - zend_printf("</font>\n"); -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ |