rse 98/04/02 22:20:17
Added: src/test/rename Makefile README apapi.h apapi.h.mk
apapi_compat.h apapi_compat.h.mk rename.cf
rename.cf.update rename.pl
src/test/rename/csubst Makefile csubst.c lexer.c lexer.l
tokens.h util.c
Log:
Move the global symbol renaming stuff from apache-core (where it was located
wrong) to apache-1.3/src/test/rename/ (where it is not located a lot better,
but a little bit better). After the renaming (if done) these stuff gets
removed, of course.
Brian: We should really create a, say apache-misc, repository for those
(temporary) stuff.
Revision Changes Path
1.1 apache-1.3/src/test/rename/Makefile
Index: Makefile
===================================================================
SRC=../..
all:
@echo "run 'make rename' for renaming _THIS_ source tree"
@echo "run 'make rename SRC=/path/to/apache-1.3/src' for other test
trees"
rename: programs
./rename.pl $(SRC)/buildmark.c \
$(SRC)/os \
$(SRC)/main \
$(SRC)/ap \
$(SRC)/modules \
$(SRC)/include
programs:
@cd csubst; make
clean:
@cd csubst; make clean
1.1 apache-1.3/src/test/rename/README
Index: README
===================================================================
This can be used directly for everyone:
rename.pl .......... The source renaming script
These three Needs adjustments to work out-of-the-box:
rename.cf.update ... Updates rename.cf according to API_EXPORT tags
in the sources. Needs an ID file in src/ which
is generated by "mkid" from GNU id-utils
apapi_compat.h.mk .. Creates apapi_compat.h file from rename.cf
apapi.h.mk ......... Creates apapi.h file from rename.cf and ID file
1.1 apache-1.3/src/test/rename/apapi.h
Index: apapi.h
===================================================================
/*
** apapi.h -- Apache API prototypes
*/
#ifndef APAPI_H
#define APAPI_H
extern void ap_MD5Final(unsigned char digest[16], AP_MD5_CTX * context);
extern void ap_MD5Init(AP_MD5_CTX * context);
extern ;
extern void ap_add_cgi_vars(request_rec *r);
extern void ap_add_common_vars(request_rec *r);
extern void ap_add_module(module *m);
extern int ap_add_named_module(const char *name);
extern int ap_allow_options (request_rec *r);
extern int ap_allow_overrides (request_rec *r);
extern ;
extern void ap_array_cat(array_header *dst, const array_header *src);
extern char * ap_auth_name (request_rec *r);
extern char * ap_auth_type (request_rec *r);
extern void ap_basic_http_header(request_rec *r);
extern int ap_bclose(BUFF *fb);
extern BUFF * ap_bcreate(pool *p, int flags);
extern int ap_bfilbuf(BUFF *fb);
extern int ap_bfileno(BUFF *fb, int direction);
extern int ap_bflsbuf(int c, BUFF *fb);
extern int ap_bflush(BUFF *fb);
extern int ap_bgetopt(BUFF *fb, int optname, void *optval);
extern int ap_bgets(char *buff, int n, BUFF *fb);
extern void ap_bhalfduplex(BUFF *fb);
extern void ap_block_alarms();
extern int ap_blookc(char *buff, BUFF *fb);
extern int ap_bnonblock(BUFF *fb, int direction);
extern void ap_bonerror(BUFF *fb, void (*error);
extern void ap_bpushfd(BUFF *fb, int fd_in, int fd_out);
extern int ap_bputs(const char *x, BUFF *fb);
extern int ap_bread(BUFF *fb, void *buf, int nbyte);
extern int ap_bsetflag(BUFF *fb, int flag, int value);
extern int ap_bsetopt(BUFF *fb, int optname, const void *optval);
extern int ap_bskiplf(BUFF *fb);
extern int ap_bwrite(BUFF *fb, const void *buf, int nbyte);
extern long ap_bytes_in_free_blocks(void);
extern long ap_bytes_in_pool(pool *p);
extern int ap_call_exec(request_rec *r, char *argv0, char **env, int
shellcmd);
extern int ap_can_exec(const struct stat *finfo);
extern int ap_cfg_closefile(configfile_t *fp);
extern int ap_cfg_getc(configfile_t *cfp);
extern int ap_cfg_getline(char *buf, size_t bufsize, configfile_t *cfp);
extern void ap_chdir_file(const char *file);
extern const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden);
extern int ap_checkmask(const char *data, const char *mask);
extern void ap_child_terminate(request_rec *r);
extern void ap_cleanup_for_exec(void);
extern void ap_clear_module_list();
extern void ap_clear_pool(struct pool *a);
extern void ap_clear_table(table *t);
extern void ap_close_piped_log (piped_log *pl);
/* prototype for `ap_construct_server' cannot be found */
extern char * ap_construct_url(pool *p, const char *uri, const request_rec
*r);
extern array_header * ap_copy_array(pool *p, const array_header *arr);
extern array_header * ap_copy_array_hdr(pool *p, const array_header *arr);
extern table * ap_copy_table(pool *p, const table *t);
extern int ap_count_dirs(const char *path);
extern char ** ap_create_environment(pool *p, table *t);
extern void * ap_create_per_dir_config(pool *p);
extern unsigned short ap_default_port_for_request(const request_rec *r);
extern unsigned short ap_default_port_for_scheme(const char *scheme_str);
extern char * ap_default_type (request_rec *r);
extern void ap_destroy_pool(pool *a);
extern void ap_destroy_sub_req(request_rec *r);
extern int ap_discard_request_body(request_rec *r);
extern char * ap_document_root (request_rec *r);
extern int ap_each_byterange(request_rec *r, long *offset, long *length);
extern void ap_error_log2stderr (server_rec *s);
extern char * ap_escape_html(pool *p, const char *s);
extern char * ap_escape_path_segment(pool *p, const char *segment);
extern char * ap_escape_shell_cmd(pool *p, const char *str);
extern int ap_exists_scoreboard_image(void);
extern int ap_find_last_token(pool *p, const char *line, const char *tok);
extern module * ap_find_linked_module(const char *name);
extern const char * ap_find_module_name(module *m);
extern int ap_find_path_info(const char *uri, const char *path_info);
extern pool * ap_find_pool(const void *ts);
extern int ap_find_token(pool *p, const char *line, const char *tok);
extern int ap_get_basic_auth_pw(request_rec *r, char **pw);
extern long ap_get_client_block(request_rec *r, char *buffer, int bufsiz);
extern struct tm * ap_get_gmtoff(int *tz);
extern void * ap_get_module_config(void *conf_vector, module *m);
extern const char * ap_get_remote_host(conn_rec *conn, void *dir_config, int
type);
extern const char * ap_get_remote_logname(request_rec *r);
extern const char * ap_get_server_name(const request_rec *r);
extern unsigned ap_get_server_port(const request_rec *r);
extern char * ap_get_time();
extern char * ap_get_token(pool *p, char **accept_line, int accept_white);
extern void ap_getparents(char *name);
extern char * ap_getword(pool *atrans, const char **line, char stop);
extern char * ap_getword_conf(pool *p, const char **line);
extern char * ap_getword_conf_nc(pool *p, char **line);
extern char * ap_getword_nc(pool *atrans, char **line, char stop);
extern char * ap_getword_nulls(pool *atrans, const char **line, char stop);
extern char * ap_getword_nulls_nc(pool *atrans, char **line, char stop);
extern char * ap_getword_white(pool *atrans, const char **line);
extern char * ap_getword_white_nc(pool *atrans, char **line);
extern char * ap_gm_timestr_822(pool *p, time_t sec);
extern gid_t ap_gname2id(const char *name);
extern void ap_hard_timeout(char *name, request_rec *r);
extern char * ap_ht_time(pool *p, time_t t, const char *fmt, int gmt);
extern int ap_ind(const char *s, char c);
extern int ap_index_of_response(int status);
extern void ap_internal_redirect(const char *new_uri, request_rec *r);
extern void ap_internal_redirect_handler(const char *new_uri, request_rec *r);
extern int ap_is_directory(const char *path);
extern int ap_is_initial_req(request_rec *r);
extern int ap_is_matchexp(const char *str);
extern int ap_is_url(const char *u);
extern void ap_kill_cleanup(pool *p, void *data, void (*cleanup);
extern void ap_kill_cleanups_for_fd(pool *p, int fd);
extern void ap_kill_cleanups_for_socket(pool *p, int sock);
extern void ap_kill_timeout(request_rec *dummy);
extern void ap_log_assert (const char *szExp, const char *szFile, int nLine);
extern void ap_log_error (const char *err, server_rec *s);
extern void ap_log_printf (const server_rec *s, const char *fmt, ...);
extern void ap_log_reason (const char *reason, const char *file, request_rec
*r);
/* prototype for `ap_log_unixerr' cannot be found */
extern array_header * ap_make_array(pool *p, int nelts, int elt_size);
extern char * ap_make_dirstr(pool *p, const char *s, int n);
extern char * ap_make_dirstr_parent(pool *p, const char *s);
extern char * ap_make_dirstr_prefix(char *d, const char *s, int n);
extern ;
extern struct pool * ap_make_sub_pool(struct pool *p);
extern table * ap_make_table(pool *p, int nelts);
extern ;
extern int ap_meets_conditions(request_rec *r);
extern void ap_no2slash(char *name);
extern void ap_note_auth_failure(request_rec *r);
extern void ap_note_basic_auth_failure(request_rec *r);
extern void ap_note_cleanups_for_fd(pool *p, int fd);
extern void ap_note_cleanups_for_file(pool *p, FILE *fp);
extern void ap_note_cleanups_for_socket(pool *p, int fd);
extern void ap_note_digest_auth_failure(request_rec *r);
extern void ap_note_subprocess(pool *a, int pid, enum kill_conditions how);
extern piped_log * ap_open_piped_log (pool *p, const char *program);
extern char * ap_os_escape_path(pool *p, const char *path, int partial);
extern table * ap_overlay_tables(pool *p, const table *overlay, const table
*base);
extern void * ap_palloc(struct pool *a, int reqsize);
extern time_t ap_parseHTTPdate(const char *date);
extern int ap_parse_uri_components(pool *p, const char *uri, uri_components
*uptr);
extern int ap_parse_hostinfo_components(pool *p, const char *hostinfo,
uri_components *uptr);
extern void * ap_pcalloc(struct pool *a, int size);
/* prototype for `ap_pcfg_open_custom' cannot be found */
extern configfile_t * ap_pcfg_openfile(pool *p, const char *name);
extern void ap_pclosedir(pool *p, DIR * d);
extern int ap_pclosef(pool *a, int fd);
extern int ap_pclosesocket(pool *a, int sock);
extern struct hostent * ap_pduphostent(pool *p, struct hostent *hp);
extern int ap_pfclose(pool *a, FILE *fd);
extern FILE * ap_pfdopen(pool *a, int fd, const char *mode);
extern FILE * ap_pfopen(pool *a, const char *name, const char *mode);
extern struct hostent * ap_pgethostbyname(pool *p, const char *hostname);
extern int ap_pool_is_ancestor(pool *a, pool *b);
extern void ap_pool_join(pool *p, pool *sub);
extern DIR * ap_popendir(pool *p, const char *name);
extern int ap_popenf(pool *a, const char *name, int flg, int mode);
extern regex_t * ap_pregcomp(pool *p, const char *pattern, int cflags);
extern void ap_pregfree(pool *p, regex_t * reg);
/* prototype for `ap_pregsub' cannot be found */
extern const char * ap_psignature(const char *prefix, request_rec *r);
extern int ap_psocket(pool *p, int domain, int type, int protocol);
extern char * ap_pstrdup(struct pool *a, const char *s);
extern char * ap_pstrndup(struct pool *a, const char *s, int n);
extern char * ap_pvsprintf(pool *p, const char *fmt, va_list ap);
extern void * ap_push_array(array_header *arr);
extern time_t ap_rationalize_mtime(request_rec *r, time_t mtime);
extern void ap_register_cleanup(pool *p, void *data, void (*plain_cleanup);
extern void ap_remove_module(module *m);
extern array_header * ap_requires (request_rec *r);
extern void ap_reset_timeout(request_rec *r);
extern int ap_rflush(request_rec *r);
extern int ap_rind(const char *s, char c);
extern int ap_rprintf(request_rec *r, const char *fmt,...);
extern int ap_rputc(int c, request_rec *r);
extern int ap_rputs(const char *str, request_rec *r);
extern void ap_run_cleanup(pool *p, void *data, void (*cleanup);
extern int ap_run_sub_req(request_rec *r);
extern int ap_rwrite(const void *buf, int nbyte, request_rec *r);
extern int ap_satisfies (request_rec *r);
extern int ap_scan_script_header_err(request_rec *r, FILE *f, char *buffer);
extern ;
extern long ap_send_fb(BUFF *fb, request_rec *r);
extern long ap_send_fb_length(BUFF *fb, request_rec *r, long length);
extern long ap_send_fd(FILE *f, request_rec *r);
extern long ap_send_fd_length(FILE *f, request_rec *r, long length);
extern void ap_send_http_header(request_rec *r);
extern ;
extern void ap_send_size(size_t size, request_rec *r);
extern char * ap_server_root_relative(pool *p, char *file);
extern int ap_set_byterange(request_rec *r);
extern int ap_set_content_length(request_rec *r, long clength);
extern void ap_set_etag(request_rec *r);
extern int ap_set_keepalive(request_rec *r);
extern void ap_set_last_modified(request_rec *r);
extern void ap_set_module_config(void *conf_vector, module *m, void *val);
extern int ap_setup_client_block(request_rec *r, int read_policy);
extern int ap_should_client_block(request_rec *r);
extern void ap_soft_timeout(char *name, request_rec *r);
extern int ap_some_auth_required(request_rec *r);
extern int ap_spawn_child_err(pool *p, int (*func);
extern int ap_spawn_child_err_buff(pool *p, int (*func);
extern const char * ap_srm_command_loop(cmd_parms *parms, void *config);
extern void ap_str_tolower(char *str);
extern int ap_strcasecmp_match(const char *str, const char *exp);
extern int ap_strcmp_match(const char *str, const char *exp);
extern ;
extern ;
extern void ap_sync_scoreboard_image();
extern void ap_table_add(table *t, const char *key, const char *val);
extern void ap_table_addn(table *t, const char *key, const char *val);
extern char * ap_table_get(const table *t, const char *key);
extern void ap_table_merge(table *t, const char *key, const char *val);
extern void ap_table_mergen(table *t, const char *key, const char *val);
extern void ap_table_set(table *t, const char *key, const char *val);
extern void ap_table_setn(table *t, const char *key, const char *val);
extern void ap_table_unset(table *t, const char *key);
extern time_t ap_tm2sec(const struct tm * t);
extern uid_t ap_uname2id(const char *name);
extern void ap_unblock_alarms();
extern int ap_unescape_url(char *url);
extern char * ap_unparse_uri_components(pool *p, const uri_components *uptr,
unsigned flags);
extern time_t ap_update_mtime(request_rec *r, time_t dependency_mtime);
extern char * ap_uudecode(pool *p, const char *bufcoded);
extern int ap_vbprintf(BUFF *fb, const char *fmt, va_list ap);
extern const char * ap_get_server_built();
extern const char * ap_get_server_version();
extern void ap_log_error (const char *err, server_rec *s);
#endif /* APAPI_H */
1.1 apache-1.3/src/test/rename/apapi.h.mk
Index: apapi.h.mk
===================================================================
:
eval 'exec perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
##
## apapi.h.mk --
##
# configuration
$id = "../src/ID";
$renamecf = "./rename.cf";
$header = "./apapi.h";
sub func_prototype {
my ($func) = @_;
$rc = join('', `lid -f $id --key=token --result=grep $func`);
if (($r, $f) = ($rc =~ m|\.c:\d+:\s*API_EXPORT\((.+?)\)(.+?\))|s)) {
$pt = "$r$f";
$pt =~ s|\n.+?:\d+:||sg;
return "extern $1$2;";
}
return '';
}
open(CFG, "<$renamecf") || die;
open(HDR, ">$header") || die;
print HDR <<'EOT';
/*
** apapi.h -- Apache API prototypes
*/
#ifndef APAPI_H
#define APAPI_H
EOT
while ($l = <CFG>) {
$l =~ s|\n$||;
next if ($l =~ m|^\s*#.*| or $l =~ m|^\s*$|);
if (($s1, $old, $s2, $new, $s3) = ($l =~ m|^(\s*)(\S+)(\s+)(\S+)(\s*)$|))
{
if ($new =~ m|^API_|) {
$new =~ s|^API_|ap_|;
$pt = &func_prototype($new);
if ($pt eq '') {
print STDERR "Sorry, prototype for `$new'
cannot be found\n";
print HDR "/* prototype for `$new' cannot be
found */\n";
}
else {
print HDR "$pt\n";
}
}
}
}
print HDR <<'EOT';
#endif /* APAPI_H */
EOT
close(CFG);
close(HDR);
1.1 apache-1.3/src/test/rename/apapi_compat.h
Index: apapi_compat.h
===================================================================
/*
** apapi_compat.h -- Apache API symbol space
** backward compatibility defines
**
** INCLUDE THIS HEADER FILE ONLY IF YOU REALLY NEED
** BACKWARD COMPATIBILITY FOR USED API SYMBOLS.
*/
#ifndef APAPI_COMPAT_H
#define APAPI_COMPAT_H
/*
* Mapping of Apache 1.2 symbols to
* official Apache 1.3 API symbols
*/
#define MD5Final ap_MD5Final
#define MD5Init ap_MD5Init
#define MD5Update ap_MD5Update
#define add_cgi_vars ap_add_cgi_vars
#define add_common_vars ap_add_common_vars
#define add_module ap_add_module
#define add_named_module ap_add_named_module
#define allow_options ap_allow_options
#define allow_overrides ap_allow_overrides
#define apapi_get_server_built ap_get_server_built
#define apapi_get_server_version ap_get_server_version
#define aplog_error ap_log_error
#define append_arrays ap_append_arrays
#define array_cat ap_array_cat
#define auth_name ap_auth_name
#define auth_type ap_auth_type
#define basic_http_header ap_basic_http_header
#define bclose ap_bclose
#define bcreate ap_bcreate
#define bfilbuf ap_bfilbuf
#define bfileno ap_bfileno
#define bflsbuf ap_bflsbuf
#define bflush ap_bflush
#define bgetopt ap_bgetopt
#define bgets ap_bgets
#define bhalfduplex ap_bhalfduplex
#define block_alarms ap_block_alarms
#define blookc ap_blookc
#define bnonblock ap_bnonblock
#define bonerror ap_bonerror
#define bpushfd ap_bpushfd
#define bputs ap_bputs
#define bread ap_bread
#define bsetflag ap_bsetflag
#define bsetopt ap_bsetopt
#define bskiplf ap_bskiplf
#define bwrite ap_bwrite
#define bytes_in_free_blocks ap_bytes_in_free_blocks
#define bytes_in_pool ap_bytes_in_pool
#define call_exec ap_call_exec
#define can_exec ap_can_exec
#define cfg_closefile ap_cfg_closefile
#define cfg_getc ap_cfg_getc
#define cfg_getline ap_cfg_getline
#define chdir_file ap_chdir_file
#define check_cmd_context ap_check_cmd_context
#define checkmask ap_checkmask
#define child_terminate ap_child_terminate
#define cleanup_for_exec ap_cleanup_for_exec
#define clear_module_list ap_clear_module_list
#define clear_pool ap_clear_pool
#define clear_table ap_clear_table
#define close_piped_log ap_close_piped_log
#define construct_server ap_construct_server
#define construct_url ap_construct_url
#define copy_array ap_copy_array
#define copy_array_hdr ap_copy_array_hdr
#define copy_table ap_copy_table
#define count_dirs ap_count_dirs
#define create_environment ap_create_environment
#define create_per_dir_config ap_create_per_dir_config
#define default_port_for_request ap_default_port_for_request
#define default_port_for_scheme ap_default_port_for_scheme
#define default_type ap_default_type
#define destroy_pool ap_destroy_pool
#define destroy_sub_req ap_destroy_sub_req
#define discard_request_body ap_discard_request_body
#define document_root ap_document_root
#define each_byterange ap_each_byterange
#define error_log2stderr ap_error_log2stderr
#define escape_html ap_escape_html
#define escape_path_segment ap_escape_path_segment
#define escape_shell_cmd ap_escape_shell_cmd
#define exists_scoreboard_image ap_exists_scoreboard_image
#define find_last_token ap_find_last_token
#define find_linked_module ap_find_linked_module
#define find_module_name ap_find_module_name
#define find_path_info ap_find_path_info
#define find_pool ap_find_pool
#define find_token ap_find_token
#define get_basic_auth_pw ap_get_basic_auth_pw
#define get_client_block ap_get_client_block
#define get_gmtoff ap_get_gmtoff
#define get_module_config ap_get_module_config
#define get_remote_host ap_get_remote_host
#define get_remote_logname ap_get_remote_logname
#define get_server_name ap_get_server_name
#define get_server_port ap_get_server_port
#define get_time ap_get_time
#define get_token ap_get_token
#define getparents ap_getparents
#define getword ap_getword
#define getword_conf ap_getword_conf
#define getword_conf_nc ap_getword_conf_nc
#define getword_nc ap_getword_nc
#define getword_nulls ap_getword_nulls
#define getword_nulls_nc ap_getword_nulls_nc
#define getword_white ap_getword_white
#define getword_white_nc ap_getword_white_nc
#define gm_timestr_822 ap_gm_timestr_822
#define gname2id ap_gname2id
#define hard_timeout ap_hard_timeout
#define ht_time ap_ht_time
#define ind ap_ind
#define index_of_response ap_index_of_response
#define internal_redirect ap_internal_redirect
#define internal_redirect_handler ap_internal_redirect_handler
#define is_directory ap_is_directory
#define is_initial_req ap_is_initial_req
#define is_matchexp ap_is_matchexp
#define is_url ap_is_url
#define kill_cleanup ap_kill_cleanup
#define kill_cleanups_for_fd ap_kill_cleanups_for_fd
#define kill_cleanups_for_socket ap_kill_cleanups_for_socket
#define kill_timeout ap_kill_timeout
#define log_assert ap_log_assert
#define log_error ap_log_error
#define log_printf ap_log_printf
#define log_reason ap_log_reason
#define log_unixerr ap_log_unixerr
#define make_array ap_make_array
#define make_dirstr ap_make_dirstr
#define make_dirstr_parent ap_make_dirstr_parent
#define make_dirstr_prefix ap_make_dirstr_prefix
#define make_full_path ap_make_full_path
#define make_sub_pool ap_make_sub_pool
#define make_table ap_make_table
#define matches_request_vhost ap_matches_request_vhost
#define meets_conditions ap_meets_conditions
#define no2slash ap_no2slash
#define note_auth_failure ap_note_auth_failure
#define note_basic_auth_failure ap_note_basic_auth_failure
#define note_cleanups_for_fd ap_note_cleanups_for_fd
#define note_cleanups_for_file ap_note_cleanups_for_file
#define note_cleanups_for_socket ap_note_cleanups_for_socket
#define note_digest_auth_failure ap_note_digest_auth_failure
#define note_subprocess ap_note_subprocess
#define open_piped_log ap_open_piped_log
#define os_escape_path ap_os_escape_path
#define overlay_tables ap_overlay_tables
#define palloc ap_palloc
#define parseHTTPdate ap_parseHTTPdate
#define parse_hostinfo_components ap_parse_hostinfo_components
#define parse_uri_components ap_parse_uri_components
#define pcalloc ap_pcalloc
#define pcfg_open_custom ap_pcfg_open_custom
#define pcfg_openfile ap_pcfg_openfile
#define pclosedir ap_pclosedir
#define pclosef ap_pclosef
#define pclosesocket ap_pclosesocket
#define pduphostent ap_pduphostent
#define pfclose ap_pfclose
#define pfdopen ap_pfdopen
#define pfopen ap_pfopen
#define pgethostbyname ap_pgethostbyname
#define pool_is_ancestor ap_pool_is_ancestor
#define pool_join ap_pool_join
#define popendir ap_popendir
#define popenf ap_popenf
#define pregcomp ap_pregcomp
#define pregfree ap_pregfree
#define pregsub ap_pregsub
#define psignature ap_psignature
#define psocket ap_psocket
#define pstrdup ap_pstrdup
#define pstrndup ap_pstrndup
#define push_array ap_push_array
#define pvsprintf ap_pvsprintf
#define rationalize_mtime ap_rationalize_mtime
#define register_cleanup ap_register_cleanup
#define remove_module ap_remove_module
#define requires ap_requires
#define reset_timeout ap_reset_timeout
#define rflush ap_rflush
#define rind ap_rind
#define rprintf ap_rprintf
#define rputc ap_rputc
#define rputs ap_rputs
#define run_cleanup ap_run_cleanup
#define run_sub_req ap_run_sub_req
#define rwrite ap_rwrite
#define satisfies ap_satisfies
#define scan_script_header_err ap_scan_script_header_err
#define scan_script_header_err_buff ap_scan_script_header_err_buff
#define send_fb ap_send_fb
#define send_fb_length ap_send_fb_length
#define send_fd ap_send_fd
#define send_fd_length ap_send_fd_length
#define send_http_header ap_send_http_header
#define send_mmap ap_send_mmap
#define send_size ap_send_size
#define server_root_relative ap_server_root_relative
#define set_byterange ap_set_byterange
#define set_content_length ap_set_content_length
#define set_etag ap_set_etag
#define set_keepalive ap_set_keepalive
#define set_last_modified ap_set_last_modified
#define set_module_config ap_set_module_config
#define setup_client_block ap_setup_client_block
#define should_client_block ap_should_client_block
#define soft_timeout ap_soft_timeout
#define some_auth_required ap_some_auth_required
#define spawn_child_err ap_spawn_child_err
#define spawn_child_err_buff ap_spawn_child_err_buff
#define srm_command_loop ap_srm_command_loop
#define str_tolower ap_str_tolower
#define strcasecmp_match ap_strcasecmp_match
#define strcmp_match ap_strcmp_match
#define sub_req_lookup_file ap_sub_req_lookup_file
#define sub_req_lookup_uri ap_sub_req_lookup_uri
#define sync_scoreboard_image ap_sync_scoreboard_image
#define table_add ap_table_add
#define table_addn ap_table_addn
#define table_get ap_table_get
#define table_merge ap_table_merge
#define table_mergen ap_table_mergen
#define table_set ap_table_set
#define table_setn ap_table_setn
#define table_unset ap_table_unset
#define tm2sec ap_tm2sec
#define uname2id ap_uname2id
#define unblock_alarms ap_unblock_alarms
#define unescape_url ap_unescape_url
#define unparse_uri_components ap_unparse_uri_components
#define update_mtime ap_update_mtime
#define uudecode ap_uudecode
#define vbprintf ap_vbprintf
/*
* Mapping of Apache 1.2 symbols to
* Apache 1.3 symbols which are
* _NO LONGER PART OF THE API_
*/
#ifdef APAPI_STRICT
#define add_per_dir_conf DO_NOT_USE_add_per_dir_conf
#define add_per_url_conf DO_NOT_USE_add_per_url_conf
#define bind_address DO_NOT_USE_bind_address
#define bprintf DO_NOT_USE_bprintf
#define bvputs DO_NOT_USE_bvputs
#define check_access DO_NOT_USE_check_access
#define check_alarm DO_NOT_USE_check_alarm
#define check_auth DO_NOT_USE_check_auth
#define check_user_id DO_NOT_USE_check_user_id
#define child_exit_modules DO_NOT_USE_child_exit_modules
#define child_init_modules DO_NOT_USE_child_init_modules
#define core_reorder_directories DO_NOT_USE_core_reorder_directories
#define coredump_dir DO_NOT_USE_coredump_dir
#define create_request_config DO_NOT_USE_create_request_config
#define daemons_limit DO_NOT_USE_daemons_limit
#define daemons_max_free DO_NOT_USE_daemons_max_free
#define daemons_min_free DO_NOT_USE_daemons_min_free
#define daemons_to_start DO_NOT_USE_daemons_to_start
#define day_snames DO_NOT_USE_day_snames
#define die DO_NOT_USE_die
#define dummy_mutex DO_NOT_USE_dummy_mutex
#define excess_requests_per_child DO_NOT_USE_excess_requests_per_child
#define finalize_request_protocol DO_NOT_USE_finalize_request_protocol
#define finalize_sub_req_protocol DO_NOT_USE_finalize_sub_req_protocol
#define find_command DO_NOT_USE_find_command
#define find_command_in_modules DO_NOT_USE_find_command_in_modules
#define find_types DO_NOT_USE_find_types
#define fini_vhost_config DO_NOT_USE_fini_vhost_config
#define fnmatch DO_NOT_USE_fnmatch
#define force_library_loading DO_NOT_USE_force_library_loading
#define get_local_host DO_NOT_USE_get_local_host
#define get_virthost_addr DO_NOT_USE_get_virthost_addr
#define group_id DO_NOT_USE_group_id
#define handle_command DO_NOT_USE_handle_command
#define header_parse DO_NOT_USE_header_parse
#define init_alloc DO_NOT_USE_init_alloc
#define init_modules DO_NOT_USE_init_modules
#define init_vhost_config DO_NOT_USE_init_vhost_config
#define init_virtual_host DO_NOT_USE_init_virtual_host
#define invoke_handler DO_NOT_USE_invoke_handler
#define is_fnmatch DO_NOT_USE_is_fnmatch
#define keepalive_timeout DO_NOT_USE_keepalive_timeout
#define limit_section DO_NOT_USE_limit_section
#define listenbacklog DO_NOT_USE_listenbacklog
#define listeners DO_NOT_USE_listeners
#define lock_fname DO_NOT_USE_lock_fname
#define log_pid DO_NOT_USE_log_pid
#define log_transaction DO_NOT_USE_log_transaction
#define max_requests_per_child DO_NOT_USE_max_requests_per_child
#define merge_per_dir_configs DO_NOT_USE_merge_per_dir_configs
#define month_snames DO_NOT_USE_month_snames
#define null_cleanup DO_NOT_USE_null_cleanup
#define open_logs DO_NOT_USE_open_logs
#define os_is_path_absolute DO_NOT_USE_os_is_path_absolute
#define parse_htaccess DO_NOT_USE_parse_htaccess
#define parse_uri DO_NOT_USE_parse_uri
#define parse_vhost_addrs DO_NOT_USE_parse_vhost_addrs
#define pid_fname DO_NOT_USE_pid_fname
#define process_request DO_NOT_USE_process_request
#define process_resource_config DO_NOT_USE_process_resource_config
#define proxy_add_header DO_NOT_USE_proxy_add_header
#define proxy_c2hex DO_NOT_USE_proxy_c2hex
#define proxy_cache_check DO_NOT_USE_proxy_cache_check
#define proxy_cache_error DO_NOT_USE_proxy_cache_error
#define proxy_cache_tidy DO_NOT_USE_proxy_cache_tidy
#define proxy_cache_update DO_NOT_USE_proxy_cache_update
#define proxy_canon_netloc DO_NOT_USE_proxy_canon_netloc
#define proxy_canonenc DO_NOT_USE_proxy_canonenc
#define proxy_connect_handler DO_NOT_USE_proxy_connect_handler
#define proxy_date_canon DO_NOT_USE_proxy_date_canon
#define proxy_del_header DO_NOT_USE_proxy_del_header
#define proxy_doconnect DO_NOT_USE_proxy_doconnect
#define proxy_ftp_canon DO_NOT_USE_proxy_ftp_canon
#define proxy_ftp_handler DO_NOT_USE_proxy_ftp_handler
#define proxy_garbage_coll DO_NOT_USE_proxy_garbage_coll
#define proxy_garbage_init DO_NOT_USE_proxy_garbage_init
#define proxy_get_header DO_NOT_USE_proxy_get_header
#define proxy_hash DO_NOT_USE_proxy_hash
#define proxy_hex2c DO_NOT_USE_proxy_hex2c
#define proxy_hex2sec DO_NOT_USE_proxy_hex2sec
#define proxy_host2addr DO_NOT_USE_proxy_host2addr
#define proxy_http_canon DO_NOT_USE_proxy_http_canon
#define proxy_http_handler DO_NOT_USE_proxy_http_handler
#define proxy_is_domainname DO_NOT_USE_proxy_is_domainname
#define proxy_is_hostname DO_NOT_USE_proxy_is_hostname
#define proxy_is_ipaddr DO_NOT_USE_proxy_is_ipaddr
#define proxy_is_word DO_NOT_USE_proxy_is_word
#define proxy_liststr DO_NOT_USE_proxy_liststr
#define proxy_log_uerror DO_NOT_USE_proxy_log_uerror
#define proxy_read_headers DO_NOT_USE_proxy_read_headers
#define proxy_sec2hex DO_NOT_USE_proxy_sec2hex
#define proxy_send_fb DO_NOT_USE_proxy_send_fb
#define proxy_send_headers DO_NOT_USE_proxy_send_headers
#define proxyerror DO_NOT_USE_proxyerror
#define psprintf DO_NOT_USE_psprintf
#define pstrcat DO_NOT_USE_pstrcat
#define read_config DO_NOT_USE_read_config
#define read_request DO_NOT_USE_read_request
#define register_other_child DO_NOT_USE_register_other_child
#define response_code_string DO_NOT_USE_response_code_string
#define restart_time DO_NOT_USE_restart_time
#define rfc1413 DO_NOT_USE_rfc1413
#define rfc1413_timeout DO_NOT_USE_rfc1413_timeout
#define run_fixups DO_NOT_USE_run_fixups
#define run_post_read_request DO_NOT_USE_run_post_read_request
#define rvputs DO_NOT_USE_rvputs
#define scoreboard_fname DO_NOT_USE_scoreboard_fname
#define scoreboard_image DO_NOT_USE_scoreboard_image
#define send_error_response DO_NOT_USE_send_error_response
#define send_header_field DO_NOT_USE_send_header_field
#define send_http_options DO_NOT_USE_send_http_options
#define send_http_trace DO_NOT_USE_send_http_trace
#define server_argv0 DO_NOT_USE_server_argv0
#define server_confname DO_NOT_USE_server_confname
#define server_post_read_config DO_NOT_USE_server_post_read_config
#define server_pre_read_config DO_NOT_USE_server_pre_read_config
#define server_root DO_NOT_USE_server_root
#define set_callback_and_alarm DO_NOT_USE_set_callback_and_alarm
#define set_file_slot DO_NOT_USE_set_file_slot
#define set_flag_slot DO_NOT_USE_set_flag_slot
#define set_name_virtual_host DO_NOT_USE_set_name_virtual_host
#define set_string_slot DO_NOT_USE_set_string_slot
#define set_string_slot_lower DO_NOT_USE_set_string_slot_lower
#define set_sub_req_protocol DO_NOT_USE_set_sub_req_protocol
#define setup_prelinked_modules DO_NOT_USE_setup_prelinked_modules
#define show_directives DO_NOT_USE_show_directives
#define show_modules DO_NOT_USE_show_modules
#define standalone DO_NOT_USE_standalone
#define start_restart DO_NOT_USE_start_restart
#define start_shutdown DO_NOT_USE_start_shutdown
#define suexec_enabled DO_NOT_USE_suexec_enabled
#define table_do DO_NOT_USE_table_do
#define threads_per_child DO_NOT_USE_threads_per_child
#define time_process_request DO_NOT_USE_time_process_request
#define translate_name DO_NOT_USE_translate_name
#define unregister_other_child DO_NOT_USE_unregister_other_child
#define update_child_status DO_NOT_USE_update_child_status
#define update_vhost_from_headers DO_NOT_USE_update_vhost_from_headers
#define update_vhost_given_ip DO_NOT_USE_update_vhost_given_ip
#define user_id DO_NOT_USE_user_id
#define user_name DO_NOT_USE_user_name
#define util_init DO_NOT_USE_util_init
#define util_uri_init DO_NOT_USE_util_uri_init
#else /* APAPI_STRICT */
#define add_per_dir_conf apx_add_per_dir_conf
#define add_per_url_conf apx_add_per_url_conf
#define bind_address apx_bind_address
#define bprintf apx_bprintf
#define bvputs apx_bvputs
#define check_access apx_check_access
#define check_alarm apx_check_alarm
#define check_auth apx_check_auth
#define check_user_id apx_check_user_id
#define child_exit_modules apx_child_exit_modules
#define child_init_modules apx_child_init_modules
#define core_reorder_directories apx_core_reorder_directories
#define coredump_dir apx_coredump_dir
#define create_request_config apx_create_request_config
#define daemons_limit apx_daemons_limit
#define daemons_max_free apx_daemons_max_free
#define daemons_min_free apx_daemons_min_free
#define daemons_to_start apx_daemons_to_start
#define day_snames apx_day_snames
#define die apx_die
#define dummy_mutex apx_dummy_mutex
#define excess_requests_per_child apx_excess_requests_per_child
#define finalize_request_protocol apx_finalize_request_protocol
#define finalize_sub_req_protocol apx_finalize_sub_req_protocol
#define find_command apx_find_command
#define find_command_in_modules apx_find_command_in_modules
#define find_types apx_find_types
#define fini_vhost_config apx_fini_vhost_config
#define fnmatch apx_fnmatch
#define force_library_loading apx_force_library_loading
#define get_local_host apx_get_local_host
#define get_virthost_addr apx_get_virthost_addr
#define group_id apx_group_id
#define handle_command apx_handle_command
#define header_parse apx_header_parse
#define init_alloc apx_init_alloc
#define init_modules apx_init_modules
#define init_vhost_config apx_init_vhost_config
#define init_virtual_host apx_init_virtual_host
#define invoke_handler apx_invoke_handler
#define is_fnmatch apx_is_fnmatch
#define keepalive_timeout apx_keepalive_timeout
#define limit_section apx_limit_section
#define listenbacklog apx_listenbacklog
#define listeners apx_listeners
#define lock_fname apx_lock_fname
#define log_pid apx_log_pid
#define log_transaction apx_log_transaction
#define max_requests_per_child apx_max_requests_per_child
#define merge_per_dir_configs apx_merge_per_dir_configs
#define month_snames apx_month_snames
#define null_cleanup apx_null_cleanup
#define open_logs apx_open_logs
#define os_is_path_absolute apx_os_is_path_absolute
#define parse_htaccess apx_parse_htaccess
#define parse_uri apx_parse_uri
#define parse_vhost_addrs apx_parse_vhost_addrs
#define pid_fname apx_pid_fname
#define process_request apx_process_request
#define process_resource_config apx_process_resource_config
#define proxy_add_header apx_proxy_add_header
#define proxy_c2hex apx_proxy_c2hex
#define proxy_cache_check apx_proxy_cache_check
#define proxy_cache_error apx_proxy_cache_error
#define proxy_cache_tidy apx_proxy_cache_tidy
#define proxy_cache_update apx_proxy_cache_update
#define proxy_canon_netloc apx_proxy_canon_netloc
#define proxy_canonenc apx_proxy_canonenc
#define proxy_connect_handler apx_proxy_connect_handler
#define proxy_date_canon apx_proxy_date_canon
#define proxy_del_header apx_proxy_del_header
#define proxy_doconnect apx_proxy_doconnect
#define proxy_ftp_canon apx_proxy_ftp_canon
#define proxy_ftp_handler apx_proxy_ftp_handler
#define proxy_garbage_coll apx_proxy_garbage_coll
#define proxy_garbage_init apx_proxy_garbage_init
#define proxy_get_header apx_proxy_get_header
#define proxy_hash apx_proxy_hash
#define proxy_hex2c apx_proxy_hex2c
#define proxy_hex2sec apx_proxy_hex2sec
#define proxy_host2addr apx_proxy_host2addr
#define proxy_http_canon apx_proxy_http_canon
#define proxy_http_handler apx_proxy_http_handler
#define proxy_is_domainname apx_proxy_is_domainname
#define proxy_is_hostname apx_proxy_is_hostname
#define proxy_is_ipaddr apx_proxy_is_ipaddr
#define proxy_is_word apx_proxy_is_word
#define proxy_liststr apx_proxy_liststr
#define proxy_log_uerror apx_proxy_log_uerror
#define proxy_read_headers apx_proxy_read_headers
#define proxy_sec2hex apx_proxy_sec2hex
#define proxy_send_fb apx_proxy_send_fb
#define proxy_send_headers apx_proxy_send_headers
#define proxyerror apx_proxyerror
#define psprintf apx_psprintf
#define pstrcat apx_pstrcat
#define read_config apx_read_config
#define read_request apx_read_request
#define register_other_child apx_register_other_child
#define response_code_string apx_response_code_string
#define restart_time apx_restart_time
#define rfc1413 apx_rfc1413
#define rfc1413_timeout apx_rfc1413_timeout
#define run_fixups apx_run_fixups
#define run_post_read_request apx_run_post_read_request
#define rvputs apx_rvputs
#define scoreboard_fname apx_scoreboard_fname
#define scoreboard_image apx_scoreboard_image
#define send_error_response apx_send_error_response
#define send_header_field apx_send_header_field
#define send_http_options apx_send_http_options
#define send_http_trace apx_send_http_trace
#define server_argv0 apx_server_argv0
#define server_confname apx_server_confname
#define server_post_read_config apx_server_post_read_config
#define server_pre_read_config apx_server_pre_read_config
#define server_root apx_server_root
#define set_callback_and_alarm apx_set_callback_and_alarm
#define set_file_slot apx_set_file_slot
#define set_flag_slot apx_set_flag_slot
#define set_name_virtual_host apx_set_name_virtual_host
#define set_string_slot apx_set_string_slot
#define set_string_slot_lower apx_set_string_slot_lower
#define set_sub_req_protocol apx_set_sub_req_protocol
#define setup_prelinked_modules apx_setup_prelinked_modules
#define show_directives apx_show_directives
#define show_modules apx_show_modules
#define standalone apx_standalone
#define start_restart apx_start_restart
#define start_shutdown apx_start_shutdown
#define suexec_enabled apx_suexec_enabled
#define table_do apx_table_do
#define threads_per_child apx_threads_per_child
#define time_process_request apx_time_process_request
#define translate_name apx_translate_name
#define unregister_other_child apx_unregister_other_child
#define update_child_status apx_update_child_status
#define update_vhost_from_headers apx_update_vhost_from_headers
#define update_vhost_given_ip apx_update_vhost_given_ip
#define user_id apx_user_id
#define user_name apx_user_name
#define util_init apx_util_init
#define util_uri_init apx_util_uri_init
#endif /* APAPI_STRICT */
#endif /* APAPI_COMPAT_H */
1.1 apache-1.3/src/test/rename/apapi_compat.h.mk
Index: apapi_compat.h.mk
===================================================================
:
eval 'exec perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
##
## apapi_compat.h.mk
##
# configuration
$config = "./rename.cf";
$header = "./apapi_compat.h";
# read config file into hash
%PREFIX = ();
%SUBST = ();
open(CFG, "<$config") || die;
while (<CFG>) {
s|\n$||;
next if (m|^\s*#.*| or m|^\s*$|);
if (($symbolic, $real) = m|^\s*(\S+)\s*=\s*(\S+)\s*$|) {
$PREFIX{$symbolic} = $real;
}
elsif (($old, $new) = m|^\s*(\S+)\s+(\S+)\s*$|) {
foreach $p (keys(%PREFIX)) {
$new =~ s|^$p|$PREFIX{$p}|;
}
$SUBST{$old} = $new;
}
}
close(CFG);
# create the C header file
open(FP, ">$header") || die;
print FP <<'EOT';
/*
** apapi_compat.h -- Apache API symbol space
** backward compatibility defines
**
** INCLUDE THIS HEADER FILE ONLY IF YOU REALLY NEED
** BACKWARD COMPATIBILITY FOR USED API SYMBOLS.
*/
#ifndef APAPI_COMPAT_H
#define APAPI_COMPAT_H
/*
* Mapping of Apache 1.2 symbols to
* official Apache 1.3 API symbols
*/
EOT
$apapiprefix = $PREFIX{'API_'};
foreach $s (sort(keys(%SUBST))) {
$n = $SUBST{$s};
next if ($n !~ m|^$apapiprefix|);
printf(FP "#define %-30s %s\n", $s, $n);
}
print FP <<'EOT';
/*
* Mapping of Apache 1.2 symbols to
* Apache 1.3 symbols which are
* _NO LONGER PART OF THE API_
*/
#ifdef APAPI_STRICT
EOT
foreach $s (sort(keys(%SUBST))) {
$n = $SUBST{$s};
next if ($n =~ m|^$apapiprefix|);
printf(FP "#define %-30s %s\n", $s, "DO_NOT_USE_$s");
}
print FP <<'EOT';
#else /* APAPI_STRICT */
EOT
foreach $s (sort(keys(%SUBST))) {
$n = $SUBST{$s};
next if ($n =~ m|^$apapiprefix|);
printf(FP "#define %-30s %s\n", $s, $n);
}
print FP <<'EOT';
#endif /* APAPI_STRICT */
#endif /* APAPI_COMPAT_H */
EOT
close(FP);
1.1 apache-1.3/src/test/rename/rename.cf
Index: rename.cf
===================================================================
##
## rename.cf -- global symbol renaming list for Apache 1.3b6
##
## The used prefixes for function/variable names of
##
## - Apache official API symbols (API):
## the ones the user can use for programming modules
## (should be as short as possible while still Apache specific)
##
## - Apache official module handles (APM):
## the symbols used for the module structures which
## are a special case due to DSO support [mod_so] !
## (should only be Apache specific and indicate module structs)
##
## - Apache internal cross-object symbols (APX):
## the ones we need for internal cross-object references
## (should only be Apache specific and indicate cross-object symbols)
##
API_ = ap_
APM_ = apm_
APX_ = apx_
##
## The actual list of symbols to rename
##
# BSS
bind_address APX_bind_address
coredump_dir APX_coredump_dir
daemons_limit APX_daemons_limit
daemons_max_free APX_daemons_max_free
daemons_min_free APX_daemons_min_free
daemons_to_start APX_daemons_to_start
excess_requests_per_child APX_excess_requests_per_child
group_id APX_group_id
listenbacklog APX_listenbacklog
listeners APX_listeners
lock_fname APX_lock_fname
max_requests_per_child APX_max_requests_per_child
pid_fname APX_pid_fname
restart_time APX_restart_time
scoreboard_fname APX_scoreboard_fname
server_argv0 APX_server_argv0
server_confname APX_server_confname
server_post_read_config APX_server_post_read_config
server_pre_read_config APX_server_pre_read_config
server_root APX_server_root
standalone APX_standalone
threads_per_child APX_threads_per_child
user_id APX_user_id
user_name APX_user_name
# DATA
suexec_enabled APX_suexec_enabled
day_snames APX_day_snames
dummy_mutex APX_dummy_mutex
month_snames APX_month_snames
rfc1413_timeout APX_rfc1413_timeout
scoreboard_image APX_scoreboard_image
# DATA
# these need a change in mod_so and a change to the name guessing in
# the src/Configure script plus changes to the embedded
# "Name:" C comments inside the module source files
#access_module APM_access_module
#action_module APM_action_module
#agent_log_module APM_agent_log_module
#alias_module APM_alias_module
#anon_auth_module APM_anon_auth_module
#asis_module APM_asis_module
#auth_module APM_auth_module
#autoindex_module APM_autoindex_module
#cern_meta_module APM_cern_meta_module
#cgi_module APM_cgi_module
#config_log_module APM_config_log_module
#core_module APM_core_module
#db_auth_module APM_db_auth_module
#dbm_auth_module APM_dbm_auth_module
#digest_module APM_digest_module
#dir_module APM_dir_module
#env_module APM_env_module
#example_module APM_example_module
#expires_module APM_expires_module
#headers_module APM_headers_module
#imap_module APM_imap_module
#includes_module APM_includes_module
#info_module APM_info_module
#mime_magic_module APM_mime_magic_module
#mime_module APM_mime_module
#negotiation_module APM_negotiation_module
#proxy_module APM_proxy_module
#referer_log_module APM_referer_log_module
#rewrite_module APM_rewrite_module
#setenvif_module APM_setenvif_module
#so_module APM_so_module
#speling_module APM_speling_module
#status_module APM_status_module
#top_module APM_top_module
#unique_id_module APM_unique_id_module
#userdir_module APM_userdir_module
#usertrack_module APM_usertrack_module
# DATA
# these two require also a (trivial) change in Configure
#prelinked_modules APX_prelinked_modules
#preloaded_modules APX_preloaded_modules
# TEXT
MD5Final API_MD5Final
MD5Init API_MD5Init
MD5Update API_MD5Update
add_cgi_vars API_add_cgi_vars
add_common_vars API_add_common_vars
add_module API_add_module
add_named_module API_add_named_module
add_per_dir_conf APX_add_per_dir_conf
add_per_url_conf APX_add_per_url_conf
allow_options API_allow_options
allow_overrides API_allow_overrides
append_arrays API_append_arrays
array_cat API_array_cat
auth_name API_auth_name
auth_type API_auth_type
basic_http_header API_basic_http_header
bclose API_bclose
bcreate API_bcreate
bfilbuf API_bfilbuf
bfileno API_bfileno
bflsbuf API_bflsbuf
bflush API_bflush
bgetopt API_bgetopt
bgets API_bgets
bhalfduplex API_bhalfduplex
block_alarms API_block_alarms
blookc API_blookc
bnonblock API_bnonblock
bonerror API_bonerror
bpushfd API_bpushfd
bputs API_bputs
bprintf APX_bprintf
bread API_bread
bsetflag API_bsetflag
bsetopt API_bsetopt
bskiplf API_bskiplf
bvputs APX_bvputs
bwrite API_bwrite
bytes_in_free_blocks API_bytes_in_free_blocks
bytes_in_pool API_bytes_in_pool
call_exec API_call_exec
can_exec API_can_exec
cfg_closefile API_cfg_closefile
cfg_getc API_cfg_getc
cfg_getline API_cfg_getline
chdir_file API_chdir_file
check_access APX_check_access
check_alarm APX_check_alarm
check_auth APX_check_auth
check_cmd_context API_check_cmd_context
check_user_id APX_check_user_id
checkmask API_checkmask
child_exit_modules APX_child_exit_modules
child_init_modules APX_child_init_modules
child_terminate API_child_terminate
cleanup_for_exec API_cleanup_for_exec
clear_module_list API_clear_module_list
clear_pool API_clear_pool
clear_table API_clear_table
close_piped_log API_close_piped_log
construct_server API_construct_server
construct_url API_construct_url
copy_array API_copy_array
copy_array_hdr API_copy_array_hdr
copy_table API_copy_table
core_reorder_directories APX_core_reorder_directories
count_dirs API_count_dirs
create_environment API_create_environment
create_per_dir_config API_create_per_dir_config
create_request_config APX_create_request_config
default_port_for_request API_default_port_for_request
default_port_for_scheme API_default_port_for_scheme
default_type API_default_type
destroy_pool API_destroy_pool
destroy_sub_req API_destroy_sub_req
die APX_die
discard_request_body API_discard_request_body
document_root API_document_root
each_byterange API_each_byterange
error_log2stderr API_error_log2stderr
escape_html API_escape_html
escape_path_segment API_escape_path_segment
escape_shell_cmd API_escape_shell_cmd
exists_scoreboard_image API_exists_scoreboard_image
finalize_request_protocol APX_finalize_request_protocol
finalize_sub_req_protocol APX_finalize_sub_req_protocol
find_command APX_find_command
find_command_in_modules APX_find_command_in_modules
find_last_token API_find_last_token
find_linked_module API_find_linked_module
find_module_name API_find_module_name
find_path_info API_find_path_info
find_pool API_find_pool
find_token API_find_token
find_types APX_find_types
fini_vhost_config APX_fini_vhost_config
fnmatch APX_fnmatch
force_library_loading APX_force_library_loading
get_basic_auth_pw API_get_basic_auth_pw
get_client_block API_get_client_block
get_gmtoff API_get_gmtoff
get_local_host APX_get_local_host
get_module_config API_get_module_config
get_remote_host API_get_remote_host
get_remote_logname API_get_remote_logname
get_server_name API_get_server_name
get_server_port API_get_server_port
get_time API_get_time
get_token API_get_token
get_virthost_addr APX_get_virthost_addr
getparents API_getparents
getword API_getword
getword_conf API_getword_conf
getword_conf_nc API_getword_conf_nc
getword_nc API_getword_nc
getword_nulls API_getword_nulls
getword_nulls_nc API_getword_nulls_nc
getword_white API_getword_white
getword_white_nc API_getword_white_nc
gm_timestr_822 API_gm_timestr_822
gname2id API_gname2id
handle_command APX_handle_command
hard_timeout API_hard_timeout
header_parse APX_header_parse
ht_time API_ht_time
ind API_ind
index_of_response API_index_of_response
init_alloc APX_init_alloc
init_modules APX_init_modules
init_vhost_config APX_init_vhost_config
init_virtual_host APX_init_virtual_host
internal_redirect API_internal_redirect
internal_redirect_handler API_internal_redirect_handler
invoke_handler APX_invoke_handler
is_directory API_is_directory
is_fnmatch APX_is_fnmatch
is_initial_req API_is_initial_req
is_matchexp API_is_matchexp
is_url API_is_url
keepalive_timeout APX_keepalive_timeout
kill_cleanup API_kill_cleanup
kill_cleanups_for_fd API_kill_cleanups_for_fd
kill_cleanups_for_socket API_kill_cleanups_for_socket
kill_timeout API_kill_timeout
limit_section APX_limit_section
log_assert API_log_assert
log_pid APX_log_pid
log_printf API_log_printf
log_reason API_log_reason
log_transaction APX_log_transaction
log_unixerr API_log_unixerr
make_array API_make_array
make_dirstr API_make_dirstr
make_dirstr_parent API_make_dirstr_parent
make_dirstr_prefix API_make_dirstr_prefix
make_full_path API_make_full_path
make_sub_pool API_make_sub_pool
make_table API_make_table
matches_request_vhost API_matches_request_vhost
meets_conditions API_meets_conditions
merge_per_dir_configs APX_merge_per_dir_configs
no2slash API_no2slash
note_auth_failure API_note_auth_failure
note_basic_auth_failure API_note_basic_auth_failure
note_cleanups_for_fd API_note_cleanups_for_fd
note_cleanups_for_file API_note_cleanups_for_file
note_cleanups_for_socket API_note_cleanups_for_socket
note_digest_auth_failure API_note_digest_auth_failure
note_subprocess API_note_subprocess
null_cleanup APX_null_cleanup
open_logs APX_open_logs
open_piped_log API_open_piped_log
os_escape_path API_os_escape_path
os_is_path_absolute APX_os_is_path_absolute
overlay_tables API_overlay_tables
palloc API_palloc
parseHTTPdate API_parseHTTPdate
parse_htaccess APX_parse_htaccess
parse_uri APX_parse_uri
parse_uri_components API_parse_uri_components
parse_hostinfo_components API_parse_hostinfo_components
parse_vhost_addrs APX_parse_vhost_addrs
pcalloc API_pcalloc
pcfg_open_custom API_pcfg_open_custom
pcfg_openfile API_pcfg_openfile
pclosedir API_pclosedir
pclosef API_pclosef
pclosesocket API_pclosesocket
pduphostent API_pduphostent
pfclose API_pfclose
pfdopen API_pfdopen
pfopen API_pfopen
pgethostbyname API_pgethostbyname
pool_is_ancestor API_pool_is_ancestor
pool_join API_pool_join
popendir API_popendir
popenf API_popenf
pregcomp API_pregcomp
pregfree API_pregfree
pregsub API_pregsub
process_request APX_process_request
process_resource_config APX_process_resource_config
proxy_add_header APX_proxy_add_header
proxy_c2hex APX_proxy_c2hex
proxy_cache_check APX_proxy_cache_check
proxy_cache_error APX_proxy_cache_error
proxy_cache_tidy APX_proxy_cache_tidy
proxy_cache_update APX_proxy_cache_update
proxy_canon_netloc APX_proxy_canon_netloc
proxy_canonenc APX_proxy_canonenc
proxy_connect_handler APX_proxy_connect_handler
proxy_date_canon APX_proxy_date_canon
proxy_del_header APX_proxy_del_header
proxy_doconnect APX_proxy_doconnect
proxy_ftp_canon APX_proxy_ftp_canon
proxy_ftp_handler APX_proxy_ftp_handler
proxy_garbage_coll APX_proxy_garbage_coll
proxy_garbage_init APX_proxy_garbage_init
proxy_get_header APX_proxy_get_header
proxy_hash APX_proxy_hash
proxy_hex2c APX_proxy_hex2c
proxy_hex2sec APX_proxy_hex2sec
proxy_host2addr APX_proxy_host2addr
proxy_http_canon APX_proxy_http_canon
proxy_http_handler APX_proxy_http_handler
proxy_is_domainname APX_proxy_is_domainname
proxy_is_hostname APX_proxy_is_hostname
proxy_is_ipaddr APX_proxy_is_ipaddr
proxy_is_word APX_proxy_is_word
proxy_liststr APX_proxy_liststr
proxy_log_uerror APX_proxy_log_uerror
proxy_read_headers APX_proxy_read_headers
proxy_sec2hex APX_proxy_sec2hex
proxy_send_fb APX_proxy_send_fb
proxy_send_headers APX_proxy_send_headers
proxyerror APX_proxyerror
psignature API_psignature
psocket API_psocket
pstrcat APX_pstrcat
pstrdup API_pstrdup
pstrndup API_pstrndup
psprintf APX_psprintf
pvsprintf API_pvsprintf
push_array API_push_array
rationalize_mtime API_rationalize_mtime
read_config APX_read_config
read_request APX_read_request
register_cleanup API_register_cleanup
register_other_child APX_register_other_child
remove_module API_remove_module
requires API_requires
reset_timeout API_reset_timeout
response_code_string APX_response_code_string
rfc1413 APX_rfc1413
rflush API_rflush
rind API_rind
rprintf API_rprintf
rputc API_rputc
rputs API_rputs
run_cleanup API_run_cleanup
run_fixups APX_run_fixups
run_post_read_request APX_run_post_read_request
run_sub_req API_run_sub_req
rvputs APX_rvputs
rwrite API_rwrite
satisfies API_satisfies
scan_script_header_err API_scan_script_header_err
scan_script_header_err_buff API_scan_script_header_err_buff
send_error_response APX_send_error_response
send_fb API_send_fb
send_fb_length API_send_fb_length
send_fd API_send_fd
send_fd_length API_send_fd_length
send_header_field APX_send_header_field
send_http_header API_send_http_header
send_http_options APX_send_http_options
send_http_trace APX_send_http_trace
send_mmap API_send_mmap
send_size API_send_size
server_root_relative API_server_root_relative
set_byterange API_set_byterange
set_callback_and_alarm APX_set_callback_and_alarm
set_content_length API_set_content_length
set_etag API_set_etag
set_file_slot APX_set_file_slot
set_flag_slot APX_set_flag_slot
set_keepalive API_set_keepalive
set_last_modified API_set_last_modified
set_module_config API_set_module_config
set_name_virtual_host APX_set_name_virtual_host
set_string_slot APX_set_string_slot
set_string_slot_lower APX_set_string_slot_lower
set_sub_req_protocol APX_set_sub_req_protocol
setup_client_block API_setup_client_block
setup_prelinked_modules APX_setup_prelinked_modules
should_client_block API_should_client_block
show_directives APX_show_directives
show_modules APX_show_modules
soft_timeout API_soft_timeout
some_auth_required API_some_auth_required
spawn_child_err API_spawn_child_err
spawn_child_err_buff API_spawn_child_err_buff
srm_command_loop API_srm_command_loop
start_restart APX_start_restart
start_shutdown APX_start_shutdown
str_tolower API_str_tolower
strcasecmp_match API_strcasecmp_match
strcmp_match API_strcmp_match
sub_req_lookup_file API_sub_req_lookup_file
sub_req_lookup_uri API_sub_req_lookup_uri
sync_scoreboard_image API_sync_scoreboard_image
table_add API_table_add
table_addn API_table_addn
table_do APX_table_do
table_get API_table_get
table_merge API_table_merge
table_mergen API_table_mergen
table_set API_table_set
table_setn API_table_setn
table_unset API_table_unset
time_process_request APX_time_process_request
tm2sec API_tm2sec
translate_name APX_translate_name
uname2id API_uname2id
unblock_alarms API_unblock_alarms
unescape_url API_unescape_url
unparse_uri_components API_unparse_uri_components
unregister_other_child APX_unregister_other_child
update_child_status APX_update_child_status
update_mtime API_update_mtime
update_vhost_from_headers APX_update_vhost_from_headers
update_vhost_given_ip APX_update_vhost_given_ip
util_init APX_util_init
util_uri_init APX_util_uri_init
uudecode API_uudecode
vbprintf API_vbprintf
# specials
apapi_get_server_built API_get_server_built
apapi_get_server_version API_get_server_version
aplog_error API_log_error
log_error API_log_error_old
1.1 apache-1.3/src/test/rename/rename.cf.update
Index: rename.cf.update
===================================================================
:
eval 'exec perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
##
## rename.cf.update
##
# configuration
$id = "../src/ID";
$renamecf = "./rename.cf";
sub is_api_func {
my ($func) = @_;
$rc = join('', `lid -f $id --key=token --result=grep $func`);
if ($rc =~ m|\.c:\d+:\s*API_EXPORT\(|s) {
return 1;
}
return 0;
}
open(OLD, "<$renamecf") || die;
open(NEW, ">$renamecf.new") || die;
while ($l = <OLD>) {
$l =~ s|\n$||;
if ($l =~ m|^\s*#.*| or $l =~ m|^\s*$|) {
print NEW "$l\n";
next;
}
if (($s1, $old, $s2, $new, $s3) = ($l =~ m|^(\s*)(\S+)(\s+)(\S+)(\s*)$|))
{
if (&is_api_func($old)) {
if ($new !~ m|^API_|) {
print "<<$s1$old$s2$new$s3\n";
$new =~ s|^[A-Z]+_|API_|;
print ">>$s1$old$s2$new$s3\n";
print NEW "$s1$old$s2$new$s3\n";
next;
}
}
else {
if ($new !~ m|^APX_|) {
print "<<$s1$old$s2$new$s3\n";
$new =~ s|^[A-Z]+_|APX_|;
print ">>$s1$old$s2$new$s3\n";
print NEW "$s1$old$s2$new$s3\n";
next;
}
}
}
print NEW "$l\n";
}
close(OLD);
close(NEW);
1.1 apache-1.3/src/test/rename/rename.pl
Index: rename.pl
===================================================================
:
eval 'exec perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
##
## rename -- global symbol renaming for C sources
## Written by Ralf S. Engelschall <[EMAIL PROTECTED]>
##
# configuration
$config = "./rename.cf";
$csubst = "./csubst/csubst";
# parameter
@SRC = @ARGV;
# read config file into hash
%PREFIX = ();
%SUBST = ();
open(CFG, "<$config") || die;
while (<CFG>) {
s|\n$||;
next if (m|^\s*#.*| or m|^\s*$|);
if (($symbolic, $real) = m|^\s*(\S+)\s*=\s*(\S+)\s*$|) {
$PREFIX{$symbolic} = $real;
}
elsif (($old, $new) = m|^\s*(\S+)\s+(\S+)\s*$|) {
foreach $p (keys(%PREFIX)) {
$new =~ s|^$p|$PREFIX{$p}|;
}
$SUBST{$old} = $new;
}
}
close(CFG);
# create csubst command line
$csubst_cmd = "$csubst";
foreach $old (keys(%SUBST)) {
$new = $SUBST{$old};
$csubst_cmd .= " -s $old:$new";
}
# create file list
@FILES = ();
foreach $src (@SRC) {
if (-f $src) {
push(@FILES, $src);
}
else {
push(@FILES, `find $src -name "*.[ch]" -type f -print`);
}
}
# walk through the file list
foreach $file (@FILES) {
$file =~ s|\n$||;
print STDERR " FILE $file\n";
open(PIPE, "cp $file $file.bak && " .
"$csubst_cmd -o $file.n $file && " .
"cp $file.n $file && " .
"rm $file.n " .
"|") || die;
%stat = ();
while (<PIPE>) {
if (m|^Subst:\s+(\S+)\s+->\s+\S+|) {
$stat{$1} = 0 if (not defined $stat{$1});
$stat{$1}++;
}
}
close(PIPE);
@S = sort(keys(%stat));
$n = -1;
if ($#S == -1) {
print STDERR " --NO-SYMBOL-SUBSTITUTIONS--\n";
}
else {
foreach $s (@S) {
printf(STDERR " %-25s", "$s:$stat{$s}");
$n++;
if ($n % 3 == 0) {
print STDERR "\n";
}
}
if ($n % 3 != 0) {
print STDERR "\n";
}
}
print STDERR "\n";
}
1.1 apache-1.3/src/test/rename/csubst/Makefile
Index: Makefile
===================================================================
CC = gcc
CFLAGS = -O2 -I.
LDFLAGS =
LIBS =
LEX = flex
YACC = bison -y
PROG = csubst
OBJS = csubst.o lexer.o util.o
.c.o:
$(CC) $(CFLAGS) -c $<
all: $(PROG)
$(PROG): $(OBJS)
$(CC) $(LDFLAGS) -o $(PROG) $(OBJS) $(LIBS)
lexer.c: lexer.l
$(LEX) lexer.l
mv lex.yy.c lexer.c
clean:
-rm -f $(PROG) *.o
distclean: clean
-rm -f Makefile
realclean: distclean
-rm -f lexer.c
mostlyclean: clean
1.1 apache-1.3/src/test/rename/csubst/csubst.c
Index: csubst.c
===================================================================
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <err.h>
#include "tokens.h"
int opt_directives;
/* From lexer.c */
extern char *yytext;
extern char *token_buffer;
extern FILE *yyin;
extern int yylex(void);
extern void init_lex(void);
extern void done_lex(void);
static FILE *output_file = stdout;
static struct {
char *old;
char *new;
} map[1024];
int mapidx = 0;
static void process_token(int token, char *buf)
{
int i;
if (token == IDENTIFIER) {
for (i = 0; map[i].old != NULL; i++) {
if (strcmp(map[i].old, buf) == 0) {
printf("Subst: %s -> %s\n", map[i].old, map[i].new);
buf = map[i].new;
break;
}
}
}
fputs(buf, output_file);
}
static void parse(void)
{
int tk;
while ((tk = yylex()) != 0)
switch (tk) {
case COMMENT:
case DIRECTIVE:
case STRING:
process_token(tk, token_buffer);
break;
default:
process_token(tk, yytext);
break;
}
}
static void process_file(char *filename)
{
if (filename != NULL && strcmp(filename, "-") != 0) {
if ((yyin = fopen(filename, "r")) == NULL)
err(1, "%s", filename);
}
else
yyin = stdin;
init_lex();
parse();
done_lex();
if (yyin != stdin)
fclose(yyin);
}
/*
* Output the program syntax then exit.
*/
static void usage(void)
{
fprintf(stderr, "usage: csubst [-o file] [-s old:new] [file ...]\n");
exit(1);
}
int main(int argc, char **argv)
{
int c;
char *cp;
while ((c = getopt(argc, argv, "o:s:")) != -1)
switch (c) {
case 's':
if ((cp = strchr(optarg, ':')) == NULL)
err(1, "invalid subst %s", optarg);
*cp++ = '\0';
map[mapidx].old = strdup(optarg);
map[mapidx].new = strdup(cp);
mapidx++;
break;
case 'o':
if (output_file != stdout)
fclose(output_file);
if ((output_file = fopen(optarg, "w")) == NULL)
err(1, "%s", optarg);
break;
case '?':
default:
usage();
/* NOTREACHED */
}
argc -= optind;
argv += optind;
opt_directives = 1;
map[mapidx].old = NULL;
map[mapidx].new = NULL;
if (argc < 1)
process_file(NULL);
else
while (*argv)
process_file(*argv++);
if (output_file != stdout)
fclose(output_file);
return 0;
}
1.1 apache-1.3/src/test/rename/csubst/lexer.c
Index: lexer.c
===================================================================
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
* $Header: /export/home/cvs/apache-1.3/src/test/rename/csubst/lexer.c,v 1.1
1998/04/03 06:20:15 rse Exp $
*/
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif
#ifdef __cplusplus
#include <stdlib.h>
#include <unistd.h>
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST
#else /* ! __cplusplus */
#if __STDC__
#define YY_USE_PROTOS
#define YY_USE_CONST
#endif /* __STDC__ */
#endif /* ! __cplusplus */
#ifdef __TURBOC__
#pragma warn -rch
#pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif
#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif
#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif
/* Returned upon end-of-file. */
#define YY_NULL 0
/* Promotes a possibly negative, possibly signed char to an unsigned
* integer for use as an array index. If the signed char is negative,
* we want to instead treat it as an 8-bit unsigned char, hence the
* double cast.
*/
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* Enter a start condition. This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
*/
#define BEGIN yy_start = 1 + 2 *
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state. The YYSTATE alias is for lex
* compatibility.
*/
#define YY_START ((yy_start - 1) / 2)
#define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin )
#define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
#define YY_BUF_SIZE 16384
typedef struct yy_buffer_state *YY_BUFFER_STATE;
extern int yyleng;
extern FILE *yyin, *yyout;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
/* The funky do-while in the following #define is used to turn the definition
* int a single C statement (which needs a semi-colon terminator). This
* avoids problems with code like:
*
* if ( condition_holds )
* yyless( 5 );
* else
* do_something_else();
*
* Prior to using the do-while the compiler would get upset at the
* "else" because it interpreted the "if" statement as being all
* done when it reached the ';' after the yyless() call.
*/
/* Return all but the first 'n' matched characters back to the input stream.
*/
#define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
*yy_cp = yy_hold_char; \
YY_RESTORE_YY_MORE_OFFSET \
yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
while ( 0 )
#define unput(c) yyunput( c, yytext_ptr )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
*/
typedef unsigned int yy_size_t;
struct yy_buffer_state
{
FILE *yy_input_file;
char *yy_ch_buf; /* input buffer */
char *yy_buf_pos; /* current position in input buffer */
/* Size of input buffer in bytes, not including room for EOB
* characters.
*/
yy_size_t yy_buf_size;
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
* delete it.
*/
int yy_is_our_buffer;
/* Whether this is an "interactive" input source; if so, and
* if we're using stdio for input, then we want to use getc()
* instead of fread(), to make sure we stop fetching input after
* each newline.
*/
int yy_is_interactive;
/* Whether we're considered to be at the beginning of a line.
* If so, '^' rules will be active on the next match, otherwise
* not.
*/
int yy_at_bol;
/* Whether to try to fill the input buffer when we reach the
* end of it.
*/
int yy_fill_buffer;
int yy_buffer_status;
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
* then we mark the buffer as YY_EOF_PENDING, to indicate that we
* shouldn't try reading from the input source any more. We might
* still have a bunch of tokens to match, though, because of
* possible backing-up.
*
* When we actually see the EOF, we change the status to "new"
* (via yyrestart()), so that the user can continue scanning by
* just pointing yyin at a new input file.
*/
#define YY_BUFFER_EOF_PENDING 2
};
static YY_BUFFER_STATE yy_current_buffer = 0;
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state".
*/
#define YY_CURRENT_BUFFER yy_current_buffer
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into
yy_ch_buf */
int yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin. A bit of a hack ...
*/
static int yy_did_buffer_switch_on_eof;
void yyrestart YY_PROTO(( FILE *input_file ));
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));
#define yy_new_buffer yy_create_buffer
#define yy_set_interactive(is_interactive) \
{ \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
yy_current_buffer->yy_is_interactive = is_interactive; \
}
#define yy_set_bol(at_bol) \
{ \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
yy_current_buffer->yy_at_bol = at_bol; \
}
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
extern char *yytext;
#define yytext_ptr yytext
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state
));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext.
*/
#define YY_DO_BEFORE_ACTION \
yytext_ptr = yy_bp; \
yyleng = (int) (yy_cp - yy_bp); \
yy_hold_char = *yy_cp; \
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
#define YY_NUM_RULES 93
#define YY_END_OF_BUFFER 94
static yyconst short int yy_accept[233] =
{ 0,
0, 0, 94, 92, 91, 91, 79, 44, 2, 85,
78, 92, 73, 74, 83, 82, 70, 81, 77, 84,
39, 39, 71, 67, 86, 72, 87, 90, 35, 75,
76, 88, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 68, 89, 69,
80, 65, 51, 60, 52, 0, 0, 49, 57, 47,
58, 48, 59, 0, 42, 1, 50, 43, 37, 0,
38, 0, 39, 56, 62, 64, 63, 55, 35, 53,
35, 35, 35, 35, 35, 35, 10, 35, 35, 35,
35, 35, 35, 18, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 54, 61, 40, 66, 0,
42, 42, 0, 43, 37, 0, 41, 36, 46, 45,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 16, 35, 19, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 0,
42, 0, 42, 0, 43, 41, 36, 3, 35, 5,
6, 35, 35, 35, 35, 12, 13, 35, 35, 17,
20, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 32, 35, 35, 0, 42, 4, 7, 35,
35, 35, 35, 15, 35, 35, 23, 35, 35, 35,
35, 35, 35, 30, 35, 35, 34, 35, 35, 11,
14, 35, 22, 24, 25, 26, 27, 28, 35, 35,
35, 35, 9, 35, 29, 35, 35, 8, 21, 31,
33, 0
} ;
static yyconst int yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 4, 5, 6, 1, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 19,
19, 19, 19, 19, 19, 19, 19, 20, 21, 22,
23, 24, 25, 1, 26, 26, 26, 26, 27, 28,
29, 29, 29, 29, 29, 30, 29, 29, 29, 29,
29, 29, 29, 29, 31, 29, 29, 32, 29, 29,
33, 34, 35, 36, 29, 1, 37, 38, 39, 40,
41, 42, 43, 44, 45, 29, 46, 47, 48, 49,
50, 51, 29, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
} ;
static yyconst int yy_meta[65] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
1, 1, 1, 1, 1, 1, 1, 3, 3, 1,
1, 1, 1, 1, 1, 3, 3, 3, 4, 4,
4, 4, 1, 1, 1, 1, 3, 3, 3, 3,
3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1, 1, 1, 1
} ;
static yyconst short int yy_base[236] =
{ 0,
0, 0, 354, 355, 355, 355, 330, 355, 355, 329,
57, 317, 355, 355, 327, 53, 355, 54, 52, 60,
68, 63, 355, 355, 51, 326, 65, 355, 0, 355,
355, 325, 292, 294, 64, 55, 64, 56, 295, 43,
294, 302, 75, 283, 292, 290, 295, 355, 68, 355,
355, 355, 355, 355, 355, 93, 122, 355, 355, 355,
355, 355, 355, 322, 115, 355, 355, 119, 149, 135,
128, 0, 154, 314, 355, 355, 355, 313, 0, 355,
281, 293, 280, 295, 282, 288, 274, 275, 272, 272,
275, 272, 269, 0, 268, 272, 74, 270, 64, 60,
274, 267, 22, 94, 272, 355, 355, 355, 355, 173,
355, 175, 193, 355, 168, 117, 200, 190, 355, 355,
266, 278, 273, 261, 98, 275, 273, 269, 261, 267,
270, 0, 256, 0, 262, 259, 248, 250, 252, 259,
245, 243, 243, 255, 245, 249, 253, 251, 238, 145,
206, 214, 355, 159, 221, 355, 224, 0, 238, 0,
0, 229, 237, 225, 231, 0, 0, 225, 222, 0,
0, 222, 222, 219, 231, 220, 221, 226, 225, 222,
212, 217, 0, 205, 215, 195, 239, 0, 0, 203,
203, 205, 195, 0, 189, 192, 0, 198, 193, 192,
172, 166, 166, 0, 151, 152, 0, 134, 133, 0,
0, 141, 0, 0, 0, 0, 0, 0, 132, 130,
122, 114, 0, 92, 0, 100, 80, 0, 0, 0,
0, 355, 286, 288, 113
} ;
static yyconst short int yy_def[236] =
{ 0,
232, 1, 232, 232, 232, 232, 232, 232, 232, 232,
232, 233, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 234, 232,
232, 232, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 232, 232, 232,
232, 232, 232, 232, 232, 233, 233, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 235, 232, 232, 232, 232, 232, 232, 234, 232,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 235, 232, 232,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 232,
232, 232, 232, 232, 232, 232, 232, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 232, 232, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
234, 0, 232, 232, 232
} ;
static yyconst short int yy_nxt[420] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 29, 29, 29, 29,
29, 29, 30, 4, 31, 32, 33, 34, 35, 36,
37, 38, 39, 29, 40, 29, 41, 29, 29, 29,
29, 42, 43, 44, 45, 46, 47, 29, 29, 29,
48, 49, 50, 51, 54, 59, 145, 64, 61, 65,
65, 66, 74, 75, 146, 60, 62, 63, 68, 55,
73, 73, 67, 68, 94, 69, 69, 77, 78, 70,
106, 95, 71, 71, 70, 86, 141, 71, 71, 72,
83, 108, 91, 70, 87, 92, 139, 84, 70, 71,
88, 142, 89, 85, 71, 118, 136, 71, 98, 99,
231, 90, 71, 140, 232, 72, 57, 137, 100, 107,
56, 101, 65, 65, 117, 117, 112, 112, 147, 230,
148, 110, 111, 229, 111, 113, 114, 116, 114, 116,
162, 163, 117, 117, 228, 110, 111, 71, 71, 113,
114, 111, 151, 151, 68, 114, 69, 69, 227, 68,
226, 73, 73, 225, 71, 70, 155, 155, 115, 115,
70, 224, 71, 71, 71, 150, 223, 150, 222, 70,
151, 151, 112, 112, 70, 115, 221, 115, 115, 220,
71, 152, 153, 115, 153, 154, 219, 154, 71, 218,
155, 155, 187, 187, 115, 152, 153, 117, 117, 157,
157, 153, 115, 151, 151, 217, 186, 156, 186, 156,
216, 187, 187, 111, 215, 111, 157, 214, 155, 155,
213, 156, 212, 211, 157, 210, 156, 111, 114, 209,
114, 208, 111, 157, 157, 207, 187, 187, 206, 205,
204, 203, 114, 202, 201, 200, 153, 114, 153, 199,
157, 198, 197, 196, 195, 194, 193, 192, 157, 191,
153, 190, 189, 188, 185, 153, 56, 184, 56, 56,
79, 79, 183, 182, 181, 180, 179, 178, 177, 176,
175, 174, 173, 172, 171, 170, 169, 168, 167, 166,
165, 164, 161, 160, 159, 158, 149, 144, 143, 138,
135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
125, 124, 123, 122, 121, 120, 119, 109, 105, 104,
103, 102, 97, 96, 93, 82, 81, 80, 76, 58,
57, 53, 52, 232, 3, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232
} ;
static yyconst short int yy_chk[420] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 11, 16, 103, 19, 18, 19,
19, 20, 25, 25, 103, 16, 18, 18, 22, 11,
22, 22, 20, 21, 40, 21, 21, 27, 27, 22,
49, 40, 22, 22, 21, 36, 100, 21, 21, 21,
35, 56, 38, 22, 36, 38, 99, 35, 21, 22,
37, 100, 37, 35, 21, 235, 97, 22, 43, 43,
227, 37, 21, 99, 57, 21, 56, 97, 43, 49,
57, 43, 65, 65, 116, 116, 68, 68, 104, 226,
104, 65, 65, 224, 65, 68, 68, 70, 68, 70,
125, 125, 70, 70, 222, 65, 65, 71, 71, 68,
68, 65, 150, 150, 69, 68, 69, 69, 221, 73,
220, 73, 73, 219, 71, 69, 154, 154, 69, 69,
73, 212, 71, 73, 73, 110, 209, 110, 208, 69,
110, 110, 112, 112, 73, 69, 206, 115, 115, 205,
73, 112, 112, 69, 112, 113, 203, 113, 73, 202,
113, 113, 186, 186, 115, 112, 112, 117, 117, 118,
118, 112, 115, 151, 151, 201, 152, 117, 152, 117,
200, 152, 152, 151, 199, 151, 118, 198, 155, 155,
196, 117, 195, 193, 118, 192, 117, 151, 155, 191,
155, 190, 151, 157, 157, 185, 187, 187, 184, 182,
181, 180, 155, 179, 178, 177, 187, 155, 187, 176,
157, 175, 174, 173, 172, 169, 168, 165, 157, 164,
187, 163, 162, 159, 149, 187, 233, 148, 233, 233,
234, 234, 147, 146, 145, 144, 143, 142, 141, 140,
139, 138, 137, 136, 135, 133, 131, 130, 129, 128,
127, 126, 124, 123, 122, 121, 105, 102, 101, 98,
96, 95, 93, 92, 91, 90, 89, 88, 87, 86,
85, 84, 83, 82, 81, 78, 74, 64, 47, 46,
45, 44, 42, 41, 39, 34, 33, 32, 26, 15,
12, 10, 7, 3, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232, 232
} ;
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
*/
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "lexer.l"
#define INITIAL 0
#line 10 "lexer.l"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <err.h>
#include "tokens.h"
extern int opt_directives;
static void string(void);
static void comment(void);
static int directive(void);
static int yywrap(void) { return 1; }
#line 549 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap YY_PROTO(( void ));
#else
extern int yywrap YY_PROTO(( void ));
#endif
#endif
#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif
#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
#endif
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
#else
static int input YY_PROTO(( void ));
#endif
#endif
#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#endif
#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif
#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines. This will fail
* miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
* or sizeof(void*) != sizeof(int).
*/
#endif
#endif
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif
/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or
YY_NULL,
* is returned in "result".
*/
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
if ( yy_current_buffer->yy_is_interactive ) \
{ \
int c = '*', n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
if ( c == '\n' ) \
buf[n++] = (char) c; \
if ( c == EOF && ferror( yyin ) ) \
YY_FATAL_ERROR( "input in flex scanner failed" ); \
result = n; \
} \
else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
&& ferror( yyin ) ) \
YY_FATAL_ERROR( "input in flex scanner failed" );
#endif
/* No semi-colon after return; correct usage is to write "yyterminate();" -
* we don't want an extra ';' after the "return" because that will cause
* some compilers to complain about unreachable statements.
*/
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif
/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif
/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif
/* Default declaration of generated scanner - a define so the user can
* easily add parameters.
*/
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif
/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up.
*/
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif
#define YY_RULE_SETUP \
YY_USER_ACTION
YY_DECL
{
register yy_state_type yy_current_state;
register char *yy_cp, *yy_bp;
register int yy_act;
#line 26 "lexer.l"
#line 703 "lex.yy.c"
if ( yy_init )
{
yy_init = 0;
#ifdef YY_USER_INIT
YY_USER_INIT;
#endif
if ( ! yy_start )
yy_start = 1; /* first start state */
if ( ! yyin )
yyin = stdin;
if ( ! yyout )
yyout = stdout;
if ( ! yy_current_buffer )
yy_current_buffer =
yy_create_buffer( yyin, YY_BUF_SIZE );
yy_load_buffer_state();
}
while ( 1 ) /* loops until end-of-file is reached */
{
yy_cp = yy_c_buf_p;
/* Support of yytext. */
*yy_cp = yy_hold_char;
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run.
*/
yy_bp = yy_cp;
yy_current_state = yy_start;
yy_match:
do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int)
yy_def[yy_current_state];
if ( yy_current_state >= 233 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] +
(unsigned int) yy_c];
++yy_cp;
}
while ( yy_base[yy_current_state] != 355 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
if ( yy_act == 0 )
{ /* have to back up */
yy_cp = yy_last_accepting_cpos;
yy_current_state = yy_last_accepting_state;
yy_act = yy_accept[yy_current_state];
}
YY_DO_BEFORE_ACTION;
do_action: /* This label is used only to access EOF actions. */
switch ( yy_act )
{ /* beginning of action switch */
case 0: /* must back up */
/* undo the effects of YY_DO_BEFORE_ACTION */
*yy_cp = yy_hold_char;
yy_cp = yy_last_accepting_cpos;
yy_current_state = yy_last_accepting_state;
goto yy_find_action;
case 1:
YY_RULE_SETUP
#line 28 "lexer.l"
{ comment(); return COMMENT; }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 29 "lexer.l"
{ return directive(); }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 31 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 4:
YY_RULE_SETUP
#line 32 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 33 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 34 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 7:
YY_RULE_SETUP
#line 35 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 8:
YY_RULE_SETUP
#line 36 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 9:
YY_RULE_SETUP
#line 37 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 38 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 11:
YY_RULE_SETUP
#line 39 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 40 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 41 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 42 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 43 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 44 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 45 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 46 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 19:
YY_RULE_SETUP
#line 47 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 48 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 49 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 50 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 51 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 52 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 53 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 54 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 55 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 56 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 57 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 58 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 59 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 60 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 61 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 62 "lexer.l"
{ return KEYWORD; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 64 "lexer.l"
{ return IDENTIFIER; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 66 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 37:
YY_RULE_SETUP
#line 67 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 68 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 69 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 70 "lexer.l"
{ return CHARACTER; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 72 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 73 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 74 "lexer.l"
{ return CONSTANT; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 76 "lexer.l"
{ string(); return STRING; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 78 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 79 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 80 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 81 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 82 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 83 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 84 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 85 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 86 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 87 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 88 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 89 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 90 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 91 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 92 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 93 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 94 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 95 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 96 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 97 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 98 "lexer.l"
{ return OPERATOR; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 99 "lexer.l"
{ return ELLIPSIS; }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 100 "lexer.l"
{ return ';'; }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 101 "lexer.l"
{ return '{'; }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 102 "lexer.l"
{ return '}'; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 103 "lexer.l"
{ return ','; }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 104 "lexer.l"
{ return ':'; }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 105 "lexer.l"
{ return '='; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 106 "lexer.l"
{ return '('; }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 107 "lexer.l"
{ return ')'; }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 108 "lexer.l"
{ return '['; }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 109 "lexer.l"
{ return ']'; }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 110 "lexer.l"
{ return '.'; }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 111 "lexer.l"
{ return '&'; }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 112 "lexer.l"
{ return '!'; }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 113 "lexer.l"
{ return '~'; }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 114 "lexer.l"
{ return '-'; }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 115 "lexer.l"
{ return '+'; }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 116 "lexer.l"
{ return '*'; }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 117 "lexer.l"
{ return '/'; }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 118 "lexer.l"
{ return '%'; }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 119 "lexer.l"
{ return '<'; }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 120 "lexer.l"
{ return '>'; }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 121 "lexer.l"
{ return '^'; }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 122 "lexer.l"
{ return '|'; }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 123 "lexer.l"
{ return '?'; }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 125 "lexer.l"
{ return yytext[0]; }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 126 "lexer.l"
{ return yytext[0]; }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 128 "lexer.l"
ECHO;
YY_BREAK
#line 1251 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
case YY_END_OF_BUFFER:
{
/* Amount of text matched not including the EOB char. */
int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
/* Undo the effects of YY_DO_BEFORE_ACTION. */
*yy_cp = yy_hold_char;
YY_RESTORE_YY_MORE_OFFSET
if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
{
/* We're scanning a new file or input source. It's
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex(). If so, then we have to assure
* consistency between yy_current_buffer and our
* globals. Here is the right place to do so, because
* this is the first action (other than possibly a
* back-up) that will match for the new input source.
*/
yy_n_chars = yy_current_buffer->yy_n_chars;
yy_current_buffer->yy_input_file = yyin;
yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
}
/* Note that here we test for yy_c_buf_p "<=" to the position
* of the first EOB in the buffer, since yy_c_buf_p will
* already have been incremented past the NUL character
* (since all states make transitions on EOB to the
* end-of-buffer state). Contrast this with the test
* in input().
*/
if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
{ /* This was really a NUL. */
yy_state_type yy_next_state;
yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state();
/* Okay, we're now positioned to make the NUL
* transition. We couldn't have
* yy_get_previous_state() go ahead and do it
* for us because it doesn't know how to deal
* with the possibility of jamming (and we don't
* want to build jamming into it because then it
* will run more slowly).
*/
yy_next_state = yy_try_NUL_trans( yy_current_state );
yy_bp = yytext_ptr + YY_MORE_ADJ;
if ( yy_next_state )
{
/* Consume the NUL. */
yy_cp = ++yy_c_buf_p;
yy_current_state = yy_next_state;
goto yy_match;
}
else
{
yy_cp = yy_c_buf_p;
goto yy_find_action;
}
}
else switch ( yy_get_next_buffer() )
{
case EOB_ACT_END_OF_FILE:
{
yy_did_buffer_switch_on_eof = 0;
if ( yywrap() )
{
/* Note: because we've taken care in
* yy_get_next_buffer() to have set up
* yytext, we can now set up
* yy_c_buf_p so that if some total
* hoser (like flex itself) wants to
* call the scanner after we return the
* YY_NULL, it'll still work - another
* YY_NULL will get returned.
*/
yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
}
else
{
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
}
break;
}
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p =
yytext_ptr + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
yy_c_buf_p =
&yy_current_buffer->yy_ch_buf[yy_n_chars];
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_find_action;
}
break;
}
default:
YY_FATAL_ERROR(
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
*
* Returns a code representing an action:
* EOB_ACT_LAST_MATCH -
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
*/
static int yy_get_next_buffer()
{
register char *dest = yy_current_buffer->yy_ch_buf;
register char *source = yytext_ptr;
register int number_to_move, i;
int ret_val;
if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
YY_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed" );
if ( yy_current_buffer->yy_fill_buffer == 0 )
{ /* Don't try to fill the buffer, so this is an EOF. */
if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
{
/* We matched a single character, the EOB, so
* treat this as a final EOF.
*/
return EOB_ACT_END_OF_FILE;
}
else
{
/* We matched some text prior to the EOB, first
* process it.
*/
return EOB_ACT_LAST_MATCH;
}
}
/* Try to read more data. */
/* First move last chars to start of buffer. */
number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
yy_current_buffer->yy_n_chars = yy_n_chars = 0;
else
{
int num_to_read =
yy_current_buffer->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = yy_current_buffer;
int yy_c_buf_p_offset =
(int) (yy_c_buf_p - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
else
b->yy_buf_size *= 2;
b->yy_ch_buf = (char *)
/* Include room in for 2 EOB chars. */
yy_flex_realloc( (void *) b->yy_ch_buf,
b->yy_buf_size + 2 );
}
else
/* Can't grow it, we don't own it. */
b->yy_ch_buf = 0;
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR(
"fatal error - scanner input buffer overflow" );
yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
num_to_read = yy_current_buffer->yy_buf_size -
number_to_move - 1;
#endif
}
if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
yy_n_chars, num_to_read );
yy_current_buffer->yy_n_chars = yy_n_chars;
}
if ( yy_n_chars == 0 )
{
if ( number_to_move == YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE;
yyrestart( yyin );
}
else
{
ret_val = EOB_ACT_LAST_MATCH;
yy_current_buffer->yy_buffer_status =
YY_BUFFER_EOF_PENDING;
}
}
else
ret_val = EOB_ACT_CONTINUE_SCAN;
yy_n_chars += number_to_move;
yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
return ret_val;
}
/* yy_get_previous_state - get the state just before the EOB char was reached
*/
static yy_state_type yy_get_previous_state()
{
register yy_state_type yy_current_state;
register char *yy_cp;
yy_current_state = yy_start;
for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
{
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] :
1);
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 233 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned
int) yy_c];
}
return yy_current_state;
}
/* yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
* next_state = yy_try_NUL_trans( current_state );
*/
#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
{
register int yy_is_jam;
register char *yy_cp = yy_c_buf_p;
register YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
{
yy_last_accepting_state = yy_current_state;
yy_last_accepting_cpos = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 233 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)
yy_c];
yy_is_jam = (yy_current_state == 232);
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
{
register char *yy_cp = yy_c_buf_p;
/* undo effects of setting up yytext */
*yy_cp = yy_hold_char;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
register int number_to_move = yy_n_chars + 2;
register char *dest = &yy_current_buffer->yy_ch_buf[
yy_current_buffer->yy_buf_size + 2];
register char *source =
&yy_current_buffer->yy_ch_buf[number_to_move];
while ( source > yy_current_buffer->yy_ch_buf )
*--dest = *--source;
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
yy_current_buffer->yy_n_chars =
yy_n_chars = yy_current_buffer->yy_buf_size;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );
}
*--yy_cp = (char) c;
yytext_ptr = yy_bp;
yy_hold_char = *yy_cp;
yy_c_buf_p = yy_cp;
}
#endif /* ifndef YY_NO_UNPUT */
#ifdef __cplusplus
static int yyinput()
#else
static int input()
#endif
{
int c;
*yy_c_buf_p = yy_hold_char;
if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
{
/* yy_c_buf_p now points to the character we want to return.
* If this occurs *before* the EOB characters, then it's a
* valid NUL; if not, then we've hit the end of the buffer.
*/
if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
/* This was really a NUL. */
*yy_c_buf_p = '\0';
else
{ /* need more input */
int offset = yy_c_buf_p - yytext_ptr;
++yy_c_buf_p;
switch ( yy_get_next_buffer() )
{
case EOB_ACT_LAST_MATCH:
/* This happens because yy_g_n_b()
* sees that we've accumulated a
* token and flags that we need to
* try matching the token before
* proceeding. But for input(),
* there's no matching to consider.
* So convert the EOB_ACT_LAST_MATCH
* to EOB_ACT_END_OF_FILE.
*/
/* Reset buffer status. */
yyrestart( yyin );
/* fall through */
case EOB_ACT_END_OF_FILE:
{
if ( yywrap() )
return EOF;
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
#ifdef __cplusplus
return yyinput();
#else
return input();
#endif
}
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p = yytext_ptr + offset;
break;
}
}
}
c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
*yy_c_buf_p = '\0'; /* preserve yytext */
yy_hold_char = *++yy_c_buf_p;
return c;
}
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
{
if ( ! yy_current_buffer )
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
yy_init_buffer( yy_current_buffer, input_file );
yy_load_buffer_state();
}
#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
{
if ( yy_current_buffer == new_buffer )
return;
if ( yy_current_buffer )
{
/* Flush out information for old buffer. */
*yy_c_buf_p = yy_hold_char;
yy_current_buffer->yy_buf_pos = yy_c_buf_p;
yy_current_buffer->yy_n_chars = yy_n_chars;
}
yy_current_buffer = new_buffer;
yy_load_buffer_state();
/* We don't actually know whether we did this switch during
* EOF (yywrap()) processing, but the only time this flag
* is looked at is after yywrap() is called, so it's safe
* to go ahead and always set it.
*/
yy_did_buffer_switch_on_eof = 1;
}
#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
{
yy_n_chars = yy_current_buffer->yy_n_chars;
yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
yyin = yy_current_buffer->yy_input_file;
yy_hold_char = *yy_c_buf_p;
}
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
{
YY_BUFFER_STATE b;
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_buf_size = size;
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
*/
b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_is_our_buffer = 1;
yy_init_buffer( b, file );
return b;
}
#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
{
if ( ! b )
return;
if ( b == yy_current_buffer )
yy_current_buffer = (YY_BUFFER_STATE) 0;
if ( b->yy_is_our_buffer )
yy_flex_free( (void *) b->yy_ch_buf );
yy_flex_free( (void *) b );
}
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif
{
yy_flush_buffer( b );
b->yy_input_file = file;
b->yy_fill_buffer = 1;
#if YY_ALWAYS_INTERACTIVE
b->yy_is_interactive = 1;
#else
#if YY_NEVER_INTERACTIVE
b->yy_is_interactive = 0;
#else
b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
}
#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#endif
{
if ( ! b )
return;
b->yy_n_chars = 0;
/* We always need two end-of-buffer characters. The first causes
* a transition to the end-of-buffer state. The second causes
* a jam in that state.
*/
b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
b->yy_buf_pos = &b->yy_ch_buf[0];
b->yy_at_bol = 1;
b->yy_buffer_status = YY_BUFFER_NEW;
if ( b == yy_current_buffer )
yy_load_buffer_state();
}
#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
{
YY_BUFFER_STATE b;
if ( size < 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
/* They forgot to leave room for the EOB's. */
return 0;
b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
b->yy_buf_pos = b->yy_ch_buf = base;
b->yy_is_our_buffer = 0;
b->yy_input_file = 0;
b->yy_n_chars = b->yy_buf_size;
b->yy_is_interactive = 0;
b->yy_at_bol = 1;
b->yy_fill_buffer = 0;
b->yy_buffer_status = YY_BUFFER_NEW;
yy_switch_to_buffer( b );
return b;
}
#endif
#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_str;
#endif
{
int len;
for ( len = 0; yy_str[len]; ++len )
;
return yy_scan_bytes( yy_str, len );
}
#endif
#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *bytes;
int len;
#endif
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
int i;
/* Get memory for full buffer, including space for trailing EOB's. */
n = len + 2;
buf = (char *) yy_flex_alloc( n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for ( i = 0; i < len; ++i )
buf[i] = bytes[i];
buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer( buf, n );
if ( ! b )
YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
/* It's okay to grow etc. this buffer, and we should throw it
* away when we're done.
*/
b->yy_is_our_buffer = 1;
return b;
}
#endif
#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#endif
{
if ( yy_start_stack_ptr >= yy_start_stack_depth )
{
yy_size_t new_size;
yy_start_stack_depth += YY_START_STACK_INCR;
new_size = yy_start_stack_depth * sizeof( int );
if ( ! yy_start_stack )
yy_start_stack = (int *) yy_flex_alloc( new_size );
else
yy_start_stack = (int *) yy_flex_realloc(
(void *) yy_start_stack, new_size );
if ( ! yy_start_stack )
YY_FATAL_ERROR(
"out of memory expanding start-condition stack" );
}
yy_start_stack[yy_start_stack_ptr++] = YY_START;
BEGIN(new_state);
}
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state()
{
if ( --yy_start_stack_ptr < 0 )
YY_FATAL_ERROR( "start-condition stack underflow" );
BEGIN(yy_start_stack[yy_start_stack_ptr]);
}
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state()
{
return yy_start_stack[yy_start_stack_ptr - 1];
}
#endif
#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif
#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
{
(void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
/* Redefine yyless() so it works in section 3 code. */
#undef yyless
#define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
yytext[yyleng] = yy_hold_char; \
yy_c_buf_p = yytext + n; \
yy_hold_char = *yy_c_buf_p; \
*yy_c_buf_p = '\0'; \
yyleng = n; \
} \
while ( 0 )
/* Internal utility routines. */
#ifndef yytext_ptr
#ifdef YY_USE_PROTOS
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
#else
static void yy_flex_strncpy( s1, s2, n )
char *s1;
yyconst char *s2;
int n;
#endif
{
register int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#endif
#ifdef YY_NEED_STRLEN
#ifdef YY_USE_PROTOS
static int yy_flex_strlen( yyconst char *s )
#else
static int yy_flex_strlen( s )
yyconst char *s;
#endif
{
register int n;
for ( n = 0; s[n]; ++n )
;
return n;
}
#endif
#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
{
return (void *) malloc( size );
}
#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
{
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
* because both ANSI C and C++ allow castless assignment from
* any pointer type to void*, and deal with argument conversions
* as though doing an assignment.
*/
return (void *) realloc( (char *) ptr, size );
}
#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
{
free( ptr );
}
#if YY_MAIN
int main()
{
yylex();
return 0;
}
#endif
#line 128 "lexer.l"
char *token_buffer;
static int maxtoken;
void
init_lex(void)
{
maxtoken = 40;
token_buffer = (char *)xmalloc(maxtoken + 1);
}
void
done_lex(void)
{
free(token_buffer);
}
static char *
extend_token_buffer(char *p)
{
int offset = p - token_buffer;
maxtoken = maxtoken * 2 + 10;
token_buffer = (char *)xrealloc(token_buffer, maxtoken + 2);
return token_buffer + offset;
}
static void
string(void)
{
char *p;
int c;
p = token_buffer;
*p++ = '"';
while ((c = input()) != EOF && c != '"') {
if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '\\')
*p++ = input();
}
if (c == EOF)
errx(1, "unexpected end of file in string");
*p++ = '"';
*p = '\0';
}
static void
comment(void)
{
char *p;
int c;
p = token_buffer;
*p++ = '/';
*p++ = '*';
while ((c = input()) != EOF) {
resync: if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '*')
if ((c = input()) == '/') {
*p++ = c;
*p = '\0';
return;
} else
goto resync;
}
*p = '\0';
}
static int
directive(void)
{
char *p;
int c;
if (opt_directives)
return '#';
p = token_buffer;
*p++ = '#';
while ((c = input()) != EOF && c != '\n') {
if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '\\')
*p++ = input();
}
*p++ = c;
*p = '\0';
return DIRECTIVE;
}
1.1 apache-1.3/src/test/rename/csubst/lexer.l
Index: lexer.l
===================================================================
Digit [0-9]
Literal [a-zA-Z_]
Hex [a-fA-F0-9]
Exp [Ee][+-]?{Digit}+
FS (f|F|l|L)
IS (u|U|l|L)+
%{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <err.h>
#include "tokens.h"
extern int opt_directives;
static void string(void);
static void comment(void);
static int directive(void);
static int yywrap(void) { return 1; }
%}
%%
"/*" { comment(); return COMMENT; }
"#" { return directive(); }
"auto" { return KEYWORD; }
"break" { return KEYWORD; }
"case" { return KEYWORD; }
"char" { return KEYWORD; }
"const" { return KEYWORD; }
"continue" { return KEYWORD; }
"default" { return KEYWORD; }
"do" { return KEYWORD; }
"double" { return KEYWORD; }
"else" { return KEYWORD; }
"enum" { return KEYWORD; }
"extern" { return KEYWORD; }
"float" { return KEYWORD; }
"for" { return KEYWORD; }
"goto" { return KEYWORD; }
"if" { return KEYWORD; }
"int" { return KEYWORD; }
"long" { return KEYWORD; }
"register" { return KEYWORD; }
"return" { return KEYWORD; }
"short" { return KEYWORD; }
"signed" { return KEYWORD; }
"sizeof" { return KEYWORD; }
"static" { return KEYWORD; }
"struct" { return KEYWORD; }
"switch" { return KEYWORD; }
"typedef" { return KEYWORD; }
"union" { return KEYWORD; }
"unsigned" { return KEYWORD; }
"void" { return KEYWORD; }
"volatile" { return KEYWORD; }
"while" { return KEYWORD; }
{Literal}({Literal}|{Digit})* { return IDENTIFIER; }
0[xX]{Hex}+{IS}? { return CONSTANT; }
0{Digit}+{IS}? { return CONSTANT; }
{Digit}+{IS} { return CONSTANT; }
{Digit}+ { return CONSTANT; }
'(\\.|[^\\'])+' { return CHARACTER; }
{Digit}+{Exp}{FS}? { return CONSTANT; }
{Digit}*"."{Digit}+({Exp})?{FS}? { return CONSTANT; }
{Digit}+"."{Digit}*({Exp})?{FS}? { return CONSTANT; }
"\"" { string(); return STRING; }
">>=" { return OPERATOR; }
"<<=" { return OPERATOR; }
"+=" { return OPERATOR; }
"-=" { return OPERATOR; }
"*=" { return OPERATOR; }
"/=" { return OPERATOR; }
"%=" { return OPERATOR; }
"&=" { return OPERATOR; }
"^=" { return OPERATOR; }
"|=" { return OPERATOR; }
">>" { return OPERATOR; }
"<<" { return OPERATOR; }
"++" { return OPERATOR; }
"--" { return OPERATOR; }
"->" { return OPERATOR; }
"&&" { return OPERATOR; }
"||" { return OPERATOR; }
"<=" { return OPERATOR; }
">=" { return OPERATOR; }
"==" { return OPERATOR; }
"!=" { return OPERATOR; }
"..." { return ELLIPSIS; }
";" { return ';'; }
"{" { return '{'; }
"}" { return '}'; }
"," { return ','; }
":" { return ':'; }
"=" { return '='; }
"(" { return '('; }
")" { return ')'; }
"[" { return '['; }
"]" { return ']'; }
"." { return '.'; }
"&" { return '&'; }
"!" { return '!'; }
"~" { return '~'; }
"-" { return '-'; }
"+" { return '+'; }
"*" { return '*'; }
"/" { return '/'; }
"%" { return '%'; }
"<" { return '<'; }
">" { return '>'; }
"^" { return '^'; }
"|" { return '|'; }
"?" { return '?'; }
[ \t\v\n\f] { return yytext[0]; }
. { return yytext[0]; }
%%
char *token_buffer;
static int maxtoken;
void
init_lex(void)
{
maxtoken = 40;
token_buffer = (char *)xmalloc(maxtoken + 1);
}
void
done_lex(void)
{
free(token_buffer);
}
static char *
extend_token_buffer(char *p)
{
int offset = p - token_buffer;
maxtoken = maxtoken * 2 + 10;
token_buffer = (char *)xrealloc(token_buffer, maxtoken + 2);
return token_buffer + offset;
}
static void
string(void)
{
char *p;
int c;
p = token_buffer;
*p++ = '"';
while ((c = input()) != EOF && c != '"') {
if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '\\')
*p++ = input();
}
if (c == EOF)
errx(1, "unexpected end of file in string");
*p++ = '"';
*p = '\0';
}
static void
comment(void)
{
char *p;
int c;
p = token_buffer;
*p++ = '/';
*p++ = '*';
while ((c = input()) != EOF) {
resync: if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '*')
if ((c = input()) == '/') {
*p++ = c;
*p = '\0';
return;
} else
goto resync;
}
*p = '\0';
}
static int
directive(void)
{
char *p;
int c;
if (opt_directives)
return '#';
p = token_buffer;
*p++ = '#';
while ((c = input()) != EOF && c != '\n') {
if (p >= token_buffer + maxtoken)
p = extend_token_buffer(p);
*p++ = c;
if (c == '\\')
*p++ = input();
}
*p++ = c;
*p = '\0';
return DIRECTIVE;
}
1.1 apache-1.3/src/test/rename/csubst/tokens.h
Index: tokens.h
===================================================================
/* $Id: tokens.h,v 1.1 1998/04/03 06:20:16 rse Exp $ */
/*
* Copyright (c) 1995, 1996, 1997
* Sandro Sigala, Brescia, Italy. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
enum {
IDENTIFIER=256,
CHARACTER,
STRING,
COMMENT,
DIRECTIVE,
CONSTANT,
KEYWORD,
OPERATOR,
ELLIPSIS,
ALL /* Not a real token, put here for convenience. */
};
#define MAX_TOKENS 266
1.1 apache-1.3/src/test/rename/csubst/util.c
Index: util.c
===================================================================
#include <assert.h>
#include <stdlib.h>
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <err.h>
/*
* Return an allocated memory area.
*/
void *
xmalloc(size_t size)
{
void *ptr;
assert(size > 0);
if ((ptr = malloc(size)) == NULL)
err(1, NULL);
return ptr;
}
/*
* Resize an allocated memory area.
*/
void *
xrealloc(void *ptr, size_t size)
{
void *newptr;
assert(ptr != NULL);
assert(size > 0);
if ((newptr = realloc(ptr, size)) == NULL)
err(1, NULL);
return newptr;
}
/*
* 4.4BSD err(), warn() functions reimplementation.
*/
/* The name of the running program. */
extern char *__progname;
void
err(int status, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
verr(status, fmt, ap);
va_end(ap);
}
void
verr(int status, const char *fmt, va_list ap)
{
int olderrno = errno;
fprintf(stderr, "%s: ", __progname);
if (fmt != NULL) {
vfprintf(stderr, fmt, ap);
fprintf(stderr, ": ");
}
fprintf(stderr, "%s\n", strerror(olderrno));
exit(status);
}
void
errx(int status, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
verrx(status, fmt, ap);
va_end(ap);
}
void
verrx(int status, const char *fmt, va_list ap)
{
fprintf(stderr, "%s: ", __progname);
if (fmt != NULL)
vfprintf(stderr, fmt, ap);
fputc('\n', stderr);
exit(status);
}
void
warn(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vwarn(fmt, ap);
va_end(ap);
}
void
vwarn(const char *fmt, va_list ap)
{
int olderrno = errno;
fprintf(stderr, "%s: ", __progname);
if (fmt != NULL) {
vfprintf(stderr, fmt, ap);
fprintf(stderr, ": ");
}
fprintf(stderr, "%s\n", strerror(olderrno));
}
void
warnx(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
vwarnx(fmt, ap);
va_end(ap);
}
void
vwarnx(const char *fmt, va_list ap)
{
fprintf(stderr, "%s: ", __progname);
if (fmt != NULL)
vfprintf(stderr, fmt, ap);
fputc('\n', stderr);
}