diff options
author | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
---|---|---|
committer | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
commit | c6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch) | |
tree | 1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/web2c/web2c/main.c | |
parent | 07ee7222e389b0777456b427a55c22d0e6ffd267 (diff) |
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/web2c/main.c')
-rw-r--r-- | Build/source/texk/web2c/web2c/main.c | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/Build/source/texk/web2c/web2c/main.c b/Build/source/texk/web2c/web2c/main.c deleted file mode 100644 index 78f70411669..00000000000 --- a/Build/source/texk/web2c/web2c/main.c +++ /dev/null @@ -1,279 +0,0 @@ -/* web2c -- convert the pseudo-Pascal generated by Tangle to C. - The output depends on many C macros and some postprocessing by other - programs. - - Arguments: - -f: force strict interpretation of semantics of for stmt - (never used with TeX and friends) - -t: special optimizations for tex.p->tex*.c - -m: special optimizations for mf.p->mf*.c - -c: supply the base part of the name of the coerce.h file - -h: supply the name of the standard header file - -d: generate some additional debugging output - - The majority of this program (which includes ptoc.yacc and ptoc.lex) - was written by Tomas Rokicki, with modifications by Tim Morgan, et al. */ - -#include "web2c.h" -#include "web2c-parser.h" - - -/* Changing this value will probably stimulate bugs in some - preprocessors -- those which want to put the expansion of a macro - entirely on one line. */ -#define max_line_length 78 - -#define max_strings 50000 -#define hash_prime 7883 -#define sym_table_size 50000 -#define unused 271828 - -/* Says whether to give voluminous progress reports. */ -boolean debug = false; -int indent = 0; -int line_pos = 0; -int last_brace = 0; -int block_level = 0; -int last_tok; -int tex = 0, strict_for = 0, mf = 0; - -char safe_string[80]; -char var_list[200]; -char field_list[200]; -char last_id[80]; -char z_id[80]; -char next_temp[] = "zzzaa"; -char coerce_name[100] = "coerce.h"; -string program_name; - -long last_i_num; -int ii, l_s; -long lower_bound, upper_bound; -FILE *out; -FILE *coerce; -int pf_count = 1; - -const char *std_header = "null.h"; /* Default include filename */ - -char strings[max_strings]; -int hash_list[hash_prime]; -short global = 1; -struct sym_entry sym_table[sym_table_size]; -int next_sym_free = -1, next_string_free = 0; -int mark_sym_free, mark_string_free; - -void -find_next_temp (void) -{ - next_temp[4]++; - if (next_temp[4] > 'z') - { - next_temp[4] = 'a'; - next_temp[3]++; - } -} - -void -normal (void) -{ - out = stdout; -} - -void -new_line (void) -{ - if (!out) - return; - if (line_pos > 0) - { - putc ('\n', out); - line_pos = 0; - } -} - - -/* Output the string S to the file `out'. */ - -void -my_output (const_string s) -{ - int len = strlen (s); - int less_indent = 0; - - if (!out) - return; - - if (line_pos + len > max_line_length) - new_line (); - - if (indent > 1 && (strcmp (s, "case") == 0 || strcmp (s, "default") == 0)) - less_indent = 2; - - while (line_pos < indent * 2 - less_indent) { - fputs (" ", out); - line_pos += 2; - } - - /* Output the token. */ - fputs (s, out); - - /* Omitting the space for parentheses makes fixwrites lose. Sigh. - What a kludge. */ - if (!(len == 1 && (*s == ';' || *s == '[' || *s == ']'))) - putc (' ', out); - line_pos += len + 1; - - last_brace = (s[0] == '}'); -} - -void -semicolon (void) -{ - if (!last_brace) { - my_output (";"); - new_line (); - last_brace = 1; - } -} - -static int -hash (const_string id) -{ - register int i = 0, j; - for (j = 0; id[j] != 0; j++) - i = (i + i + id[j]) % hash_prime; - return i; -} - -int -search_table (const_string id) -{ - int ptr; - ptr = hash_list[hash (id)]; - while (ptr != -1) - { - if (strcmp (id, sym_table[ptr].id) == 0) - return (ptr); - else - ptr = sym_table[ptr].next; - } - return -1; -} - - -/* Add ID to the symbol table. Leave it up to the caller to assign to - the `typ' field. Return the index into the `sym_table' array. */ -int -add_to_table (string id) -{ - int h, ptr; - h = hash (id); - ptr = hash_list[h]; - hash_list[h] = ++next_sym_free; - sym_table[next_sym_free].next = ptr; - sym_table[next_sym_free].val = unused; - sym_table[next_sym_free].id = strings + next_string_free; - sym_table[next_sym_free].var_formal = false; - sym_table[next_sym_free].var_not_needed = false; - strcpy (strings + next_string_free, id); - next_string_free += strlen (id) + 1; - return next_sym_free; -} - -void -remove_locals (void) -{ - int h, ptr; - for (h = 0; h < hash_prime; h++) - { - next_sym_free = mark_sym_free; - next_string_free = mark_string_free; - ptr = hash_list[h]; - while (ptr > next_sym_free) - ptr = sym_table[ptr].next; - hash_list[h] = ptr; - } - global = 1; -} - -void -mark (void) -{ - mark_sym_free = next_sym_free; - mark_string_free = next_string_free; - global = 0; -} - - -void -initialize (void) -{ - register int i; - - for (i = 0; i < hash_prime; hash_list[i++] = -1) - ; - - normal (); - - coerce = xfopen (coerce_name, FOPEN_W_MODE); -} - -#ifdef WIN32 -#include <io.h> -#include <fcntl.h> -#endif - -int -main (int argc, string *argv) -{ - int i; - -#ifdef WIN32 - setmode(fileno(stdout), _O_BINARY); -#endif - for (i = 1; i < argc; i++) - if (argv[i][0] == '-') - switch (argv[i][1]) - { - case 't': - tex = true; - break; - case 'm': - mf = true; - break; - case 'f': - strict_for = true; - break; - case 'h': - std_header = &argv[i][2]; - break; - case 'd': - debug = true; - break; - case 'c': - program_name = &argv[i][2]; - sprintf (coerce_name, "%s.h", program_name); - break; - default: - fprintf (stderr, "web2c: Unknown option %s, ignored\n", argv[i]); - break; - } - else - { - fprintf (stderr, "web2c: Unknown argument %s, ignored\n", argv[i]); - } - - initialize (); - yyparse (); - new_line (); - - xfclose (coerce, coerce_name); - - if (debug) - { - fprintf (stderr, "%d symbols.\n", next_sym_free); - fprintf (stderr, "%d strings.\n", next_string_free); - } - - return EXIT_SUCCESS; -} |