Update bootstrap files.
This commit is contained in:
413
latex.c
413
latex.c
@@ -1,17 +1,25 @@
|
||||
|
||||
#line 893 "nuweb.w"
|
||||
#include "global.h"
|
||||
static int scraps = 1;
|
||||
static void copy_scrap(); /* formats the body of a scrap */
|
||||
static void print_scrap_numbers(); /* formats a list of scrap numbers */
|
||||
static void format_entry(); /* formats an index entry */
|
||||
static void format_file_entry(); /* formats a file index entry */
|
||||
static void format_user_entry();
|
||||
static void write_arg();
|
||||
static void write_literal();
|
||||
static void write_ArglistElement();
|
||||
void write_tex(file_name, tex_name, sector)
|
||||
char *file_name;
|
||||
char *tex_name;
|
||||
unsigned char sector;
|
||||
|
||||
#line 2041 "nuweb.w"
|
||||
static void copy_scrap(FILE *file, int prefix, Name *name);
|
||||
/* formats the body of a scrap */
|
||||
static void print_scrap_numbers(FILE *tex_file, Scrap_Node *scraps);
|
||||
/* formats a list of scrap numbers */
|
||||
static void format_entry(Name *name, FILE *tex_file, unsigned char sector);
|
||||
/* formats an index entry */
|
||||
static void format_file_entry(Name *name, FILE *tex_file);
|
||||
/* formats a file index entry */
|
||||
static void format_user_entry(Name *name, FILE *tex_file,
|
||||
unsigned char sector);
|
||||
static void write_arg(FILE *tex_file, char *p);
|
||||
static void write_literal(FILE *tex_file, char *p, int mode);
|
||||
static void write_ArglistElement(FILE *file, Arglist *args, char **params);
|
||||
|
||||
#line 2060 "nuweb.w"
|
||||
void write_tex(char *file_name, char *tex_name)
|
||||
{
|
||||
FILE *tex_file = fopen(tex_name, "w");
|
||||
if (tex_file) {
|
||||
@@ -19,6 +27,8 @@ void write_tex(file_name, tex_name, sector)
|
||||
fprintf(stderr, "writing %s\n", tex_name);
|
||||
source_open(file_name);
|
||||
/* Write LaTeX limbo definitions */
|
||||
|
||||
#line 2084 "nuweb.w"
|
||||
if (hyperref_flag) {
|
||||
fputs("\\newcommand{\\NWtarget}[2]{\\hypertarget{#1}{#2}}\n", tex_file);
|
||||
fputs("\\newcommand{\\NWlink}[2]{\\hyperlink{#1}{#2}}\n", tex_file);
|
||||
@@ -42,11 +52,19 @@ void write_tex(file_name, tex_name, sector)
|
||||
if (hyperoptions[0] != '\0')
|
||||
{
|
||||
/* Write the hyperlink usage macro */
|
||||
|
||||
#line 2112 "nuweb.w"
|
||||
fprintf(tex_file, "\\usepackage[%s]{hyperref}", hyperoptions);
|
||||
#line 2106 "nuweb.w"
|
||||
|
||||
}
|
||||
fputs("}\n", tex_file);
|
||||
|
||||
#line 2067 "nuweb.w"
|
||||
|
||||
/* Copy \verb|source_file| into \verb|tex_file| */
|
||||
|
||||
#line 2119 "nuweb.w"
|
||||
{
|
||||
int inBlock = FALSE;
|
||||
int c = source_get();
|
||||
@@ -54,6 +72,8 @@ void write_tex(file_name, tex_name, sector)
|
||||
if (c == nw_char)
|
||||
{
|
||||
/* Interpret at-sequence */
|
||||
|
||||
#line 2135 "nuweb.w"
|
||||
{
|
||||
int big_definition = FALSE;
|
||||
c = source_get();
|
||||
@@ -64,18 +84,26 @@ void write_tex(file_name, tex_name, sector)
|
||||
update_delimit_scrap();
|
||||
break;
|
||||
case 'O': big_definition = TRUE;
|
||||
case 'o': {
|
||||
case 'o':
|
||||
#line 2259 "nuweb.w"
|
||||
{
|
||||
Name *name = collect_file_name();
|
||||
/* Begin the scrap environment */
|
||||
|
||||
#line 2346 "nuweb.w"
|
||||
{
|
||||
if (big_definition)
|
||||
{
|
||||
if (inBlock)
|
||||
{
|
||||
/* End block */
|
||||
|
||||
#line 2377 "nuweb.w"
|
||||
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
|
||||
fputs("\\end{flushleft}\n", tex_file);
|
||||
inBlock = FALSE;
|
||||
#line 2351 "nuweb.w"
|
||||
|
||||
}
|
||||
fputs("\\begin{flushleft} \\small", tex_file);
|
||||
}
|
||||
@@ -84,17 +112,27 @@ void write_tex(file_name, tex_name, sector)
|
||||
if (inBlock)
|
||||
{
|
||||
/* Switch block */
|
||||
|
||||
#line 2374 "nuweb.w"
|
||||
fputs("\\par\\vspace{\\baselineskip}\n", tex_file);
|
||||
#line 2359 "nuweb.w"
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Start block */
|
||||
|
||||
#line 2370 "nuweb.w"
|
||||
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
|
||||
inBlock = TRUE;
|
||||
#line 2363 "nuweb.w"
|
||||
|
||||
}
|
||||
}
|
||||
fprintf(tex_file, "\\label{scrap%d}\\raggedright\\small\n", scraps);
|
||||
}
|
||||
#line 2261 "nuweb.w"
|
||||
|
||||
fputs("\\NWtarget{nuweb", tex_file);
|
||||
write_single_scrap_ref(tex_file, scraps);
|
||||
fputs("}{} ", tex_file);
|
||||
@@ -102,13 +140,19 @@ void write_tex(file_name, tex_name, sector)
|
||||
write_single_scrap_ref(tex_file, scraps);
|
||||
fputs("}}$\\equiv$\n", tex_file);
|
||||
/* Fill in the middle of the scrap environment */
|
||||
|
||||
#line 2387 "nuweb.w"
|
||||
{
|
||||
fputs("\\vspace{-1ex}\n\\begin{list}{}{} \\item\n", tex_file);
|
||||
extra_scraps = 0;
|
||||
copy_scrap(tex_file, TRUE, name);
|
||||
fputs("{\\NWsep}\n\\end{list}\n", tex_file);
|
||||
}
|
||||
#line 2268 "nuweb.w"
|
||||
|
||||
/* Begin the cross-reference environment */
|
||||
|
||||
#line 2433 "nuweb.w"
|
||||
{
|
||||
fputs("\\vspace{-1.5ex}\n", tex_file);
|
||||
fputs("\\footnotesize\n", tex_file);
|
||||
@@ -116,8 +160,12 @@ void write_tex(file_name, tex_name, sector)
|
||||
tex_file);
|
||||
fputs("\\setlength{\\itemindent}{-\\leftmargin}}\n", tex_file);}
|
||||
|
||||
#line 2269 "nuweb.w"
|
||||
|
||||
if ( scrap_flag ) {
|
||||
/* Write file defs */
|
||||
|
||||
#line 2452 "nuweb.w"
|
||||
{
|
||||
if (name->defs) {
|
||||
if (name->defs->next) {
|
||||
@@ -130,15 +178,23 @@ void write_tex(file_name, tex_name, sector)
|
||||
name->spelling);
|
||||
}
|
||||
}
|
||||
#line 2271 "nuweb.w"
|
||||
|
||||
}
|
||||
format_defs_refs(tex_file, scraps);
|
||||
format_uses_refs(tex_file, scraps++);
|
||||
/* Finish the cross-reference environment */
|
||||
|
||||
#line 2446 "nuweb.w"
|
||||
{
|
||||
fputs("\n\\item{}", tex_file);
|
||||
fputs("\n\\end{list}\n", tex_file);
|
||||
}
|
||||
#line 2275 "nuweb.w"
|
||||
|
||||
/* Finish the scrap environment */
|
||||
|
||||
#line 2404 "nuweb.w"
|
||||
{
|
||||
scraps += extra_scraps;
|
||||
if (big_definition)
|
||||
@@ -146,32 +202,48 @@ void write_tex(file_name, tex_name, sector)
|
||||
else
|
||||
{
|
||||
/* End block */
|
||||
|
||||
#line 2377 "nuweb.w"
|
||||
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
|
||||
fputs("\\end{flushleft}\n", tex_file);
|
||||
inBlock = FALSE;
|
||||
#line 2410 "nuweb.w"
|
||||
|
||||
}
|
||||
do
|
||||
c = source_get();
|
||||
while (isspace(c));
|
||||
}
|
||||
#line 2276 "nuweb.w"
|
||||
|
||||
}
|
||||
#line 2145 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'Q':
|
||||
case 'D': big_definition = TRUE;
|
||||
case 'q':
|
||||
case 'd': {
|
||||
case 'd':
|
||||
#line 2284 "nuweb.w"
|
||||
{
|
||||
Name *name = collect_macro_name();
|
||||
|
||||
/* Begin the scrap environment */
|
||||
|
||||
#line 2346 "nuweb.w"
|
||||
{
|
||||
if (big_definition)
|
||||
{
|
||||
if (inBlock)
|
||||
{
|
||||
/* End block */
|
||||
|
||||
#line 2377 "nuweb.w"
|
||||
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
|
||||
fputs("\\end{flushleft}\n", tex_file);
|
||||
inBlock = FALSE;
|
||||
#line 2351 "nuweb.w"
|
||||
|
||||
}
|
||||
fputs("\\begin{flushleft} \\small", tex_file);
|
||||
}
|
||||
@@ -180,21 +252,33 @@ void write_tex(file_name, tex_name, sector)
|
||||
if (inBlock)
|
||||
{
|
||||
/* Switch block */
|
||||
|
||||
#line 2374 "nuweb.w"
|
||||
fputs("\\par\\vspace{\\baselineskip}\n", tex_file);
|
||||
#line 2359 "nuweb.w"
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Start block */
|
||||
|
||||
#line 2370 "nuweb.w"
|
||||
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
|
||||
inBlock = TRUE;
|
||||
#line 2363 "nuweb.w"
|
||||
|
||||
}
|
||||
}
|
||||
fprintf(tex_file, "\\label{scrap%d}\\raggedright\\small\n", scraps);
|
||||
}
|
||||
#line 2287 "nuweb.w"
|
||||
|
||||
fputs("\\NWtarget{nuweb", tex_file);
|
||||
write_single_scrap_ref(tex_file, scraps);
|
||||
fputs("}{} $\\langle\\,${\\itshape ", tex_file);
|
||||
/* Write the macro's name */
|
||||
|
||||
#line 2306 "nuweb.w"
|
||||
{
|
||||
char * p = name->spelling;
|
||||
int i = 0;
|
||||
@@ -208,17 +292,25 @@ void write_tex(file_name, tex_name, sector)
|
||||
fputc(*p++, tex_file);
|
||||
}
|
||||
}
|
||||
#line 2291 "nuweb.w"
|
||||
|
||||
fputs("}\\nobreak\\ {\\footnotesize {", tex_file);
|
||||
write_single_scrap_ref(tex_file, scraps);
|
||||
fputs("}}$\\,\\rangle\\equiv$\n", tex_file);
|
||||
/* Fill in the middle of the scrap environment */
|
||||
|
||||
#line 2387 "nuweb.w"
|
||||
{
|
||||
fputs("\\vspace{-1ex}\n\\begin{list}{}{} \\item\n", tex_file);
|
||||
extra_scraps = 0;
|
||||
copy_scrap(tex_file, TRUE, name);
|
||||
fputs("{\\NWsep}\n\\end{list}\n", tex_file);
|
||||
}
|
||||
#line 2295 "nuweb.w"
|
||||
|
||||
/* Begin the cross-reference environment */
|
||||
|
||||
#line 2433 "nuweb.w"
|
||||
{
|
||||
fputs("\\vspace{-1.5ex}\n", tex_file);
|
||||
fputs("\\footnotesize\n", tex_file);
|
||||
@@ -226,14 +318,22 @@ void write_tex(file_name, tex_name, sector)
|
||||
tex_file);
|
||||
fputs("\\setlength{\\itemindent}{-\\leftmargin}}\n", tex_file);}
|
||||
|
||||
#line 2296 "nuweb.w"
|
||||
|
||||
/* Write macro defs */
|
||||
|
||||
#line 2466 "nuweb.w"
|
||||
{
|
||||
if (name->defs->next) {
|
||||
fputs("\\item \\NWtxtMacroDefBy\\ ", tex_file);
|
||||
print_scrap_numbers(tex_file, name->defs);
|
||||
}
|
||||
}
|
||||
#line 2297 "nuweb.w"
|
||||
|
||||
/* Write macro refs */
|
||||
|
||||
#line 2474 "nuweb.w"
|
||||
{
|
||||
if (name->uses) {
|
||||
if (name->uses->next) {
|
||||
@@ -256,14 +356,22 @@ void write_tex(file_name, tex_name, sector)
|
||||
command_name, name->spelling);
|
||||
}
|
||||
}
|
||||
#line 2298 "nuweb.w"
|
||||
|
||||
format_defs_refs(tex_file, scraps);
|
||||
format_uses_refs(tex_file, scraps++);
|
||||
/* Finish the cross-reference environment */
|
||||
|
||||
#line 2446 "nuweb.w"
|
||||
{
|
||||
fputs("\n\\item{}", tex_file);
|
||||
fputs("\n\\end{list}\n", tex_file);
|
||||
}
|
||||
#line 2301 "nuweb.w"
|
||||
|
||||
/* Finish the scrap environment */
|
||||
|
||||
#line 2404 "nuweb.w"
|
||||
{
|
||||
scraps += extra_scraps;
|
||||
if (big_definition)
|
||||
@@ -271,37 +379,59 @@ void write_tex(file_name, tex_name, sector)
|
||||
else
|
||||
{
|
||||
/* End block */
|
||||
|
||||
#line 2377 "nuweb.w"
|
||||
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
|
||||
fputs("\\end{flushleft}\n", tex_file);
|
||||
inBlock = FALSE;
|
||||
#line 2410 "nuweb.w"
|
||||
|
||||
}
|
||||
do
|
||||
c = source_get();
|
||||
while (isspace(c));
|
||||
}
|
||||
#line 2302 "nuweb.w"
|
||||
|
||||
}
|
||||
#line 2150 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 's':
|
||||
/* Step to next sector */
|
||||
|
||||
#line 1493 "nuweb.w"
|
||||
|
||||
prev_sector += 1;
|
||||
current_sector = prev_sector;
|
||||
c = source_get();
|
||||
|
||||
#line 2153 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'S':
|
||||
/* Close the current sector */
|
||||
|
||||
#line 1500 "nuweb.w"
|
||||
current_sector = 1;
|
||||
c = source_get();
|
||||
|
||||
#line 2156 "nuweb.w"
|
||||
|
||||
break;
|
||||
case '{':
|
||||
case '[':
|
||||
case '(': copy_scrap(tex_file, FALSE, NULL);
|
||||
case '(':
|
||||
#line 2426 "nuweb.w"
|
||||
copy_scrap(tex_file, FALSE, NULL);
|
||||
c = source_get();
|
||||
|
||||
#line 2160 "nuweb.w"
|
||||
|
||||
break;
|
||||
case '<': {
|
||||
case '<':
|
||||
#line 2192 "nuweb.w"
|
||||
{
|
||||
Parameters local_parameters = 0;
|
||||
int changed;
|
||||
char indent_chars[MAX_INDENT];
|
||||
@@ -318,36 +448,66 @@ void write_tex(file_name, tex_name, sector)
|
||||
c = source_get();
|
||||
}
|
||||
|
||||
#line 2162 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'x': {
|
||||
case 'x':
|
||||
#line 2749 "nuweb.w"
|
||||
{
|
||||
/* Get label from */
|
||||
|
||||
#line 6398 "nuweb.w"
|
||||
char label_name[MAX_NAME_LEN];
|
||||
char * p = label_name;
|
||||
while (c = source_get(), c != nw_char) /* Here is 150a-01 */
|
||||
while (c =
|
||||
#line 2750 "nuweb.w"
|
||||
source_get(), c != nw_char) /* Here is 151a-01 */
|
||||
*p++ = c;
|
||||
*p = '\0';
|
||||
c = source_get();
|
||||
c =
|
||||
#line 2750 "nuweb.w"
|
||||
source_get();
|
||||
|
||||
write_label(label_name, tex_file);
|
||||
#line 2750 "nuweb.w"
|
||||
|
||||
write_label(label_name,
|
||||
#line 2164 "nuweb.w"
|
||||
tex_file);
|
||||
}
|
||||
#line 2164 "nuweb.w"
|
||||
|
||||
c = source_get();
|
||||
break;
|
||||
case 'c': if (inBlock)
|
||||
case 'c':
|
||||
#line 1785 "nuweb.w"
|
||||
if (inBlock)
|
||||
{
|
||||
/* End block */
|
||||
|
||||
#line 2377 "nuweb.w"
|
||||
fputs("\\end{minipage}\\vspace{4ex}\n", tex_file);
|
||||
fputs("\\end{flushleft}\n", tex_file);
|
||||
inBlock = FALSE;
|
||||
#line 1787 "nuweb.w"
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Start block */
|
||||
|
||||
#line 2370 "nuweb.w"
|
||||
fputs("\\begin{flushleft} \\small\n\\begin{minipage}{\\linewidth}", tex_file);
|
||||
inBlock = TRUE;
|
||||
#line 1791 "nuweb.w"
|
||||
|
||||
}
|
||||
#line 2167 "nuweb.w"
|
||||
|
||||
c = source_get();
|
||||
break;
|
||||
case 'f': {
|
||||
case 'f':
|
||||
#line 2915 "nuweb.w"
|
||||
{
|
||||
if (file_names) {
|
||||
fputs("\n{\\small\\begin{list}{}{\\setlength{\\itemsep}{-\\parsep}",
|
||||
tex_file);
|
||||
@@ -357,8 +517,12 @@ void write_tex(file_name, tex_name, sector)
|
||||
}
|
||||
c = source_get();
|
||||
}
|
||||
#line 2170 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'm': {
|
||||
case 'm':
|
||||
#line 2965 "nuweb.w"
|
||||
{
|
||||
unsigned char sector = current_sector;
|
||||
int c = source_get();
|
||||
if (c == '+')
|
||||
@@ -377,8 +541,12 @@ void write_tex(file_name, tex_name, sector)
|
||||
}
|
||||
c = source_get();
|
||||
|
||||
#line 2172 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'u': {
|
||||
case 'u':
|
||||
#line 3118 "nuweb.w"
|
||||
{
|
||||
unsigned char sector = current_sector;
|
||||
c = source_get();
|
||||
if (c == '+') {
|
||||
@@ -393,10 +561,16 @@ void write_tex(file_name, tex_name, sector)
|
||||
fputs("\\end{list}}", tex_file);
|
||||
}
|
||||
}
|
||||
#line 2174 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'v': fputs(version_string, tex_file);
|
||||
case 'v':
|
||||
#line 2187 "nuweb.w"
|
||||
fputs(version_string, tex_file);
|
||||
c = source_get();
|
||||
|
||||
#line 2176 "nuweb.w"
|
||||
|
||||
break;
|
||||
default:
|
||||
if (c==nw_char)
|
||||
@@ -405,6 +579,8 @@ void write_tex(file_name, tex_name, sector)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#line 2125 "nuweb.w"
|
||||
|
||||
}
|
||||
else {
|
||||
putc(c, tex_file);
|
||||
@@ -412,11 +588,15 @@ void write_tex(file_name, tex_name, sector)
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 2068 "nuweb.w"
|
||||
|
||||
fclose(tex_file);
|
||||
}
|
||||
else
|
||||
fprintf(stderr, "%s: can't open %s\n", command_name, tex_name);
|
||||
}
|
||||
|
||||
#line 2321 "nuweb.w"
|
||||
static void write_arg(FILE * tex_file, char * p)
|
||||
{
|
||||
fputs("\\hbox{\\slshape\\sffamily ", tex_file);
|
||||
@@ -439,9 +619,9 @@ static void write_arg(FILE * tex_file, char * p)
|
||||
|
||||
fputs("\\/}", tex_file);
|
||||
}
|
||||
static void print_scrap_numbers(tex_file, scraps)
|
||||
FILE *tex_file;
|
||||
Scrap_Node *scraps;
|
||||
|
||||
#line 2498 "nuweb.w"
|
||||
static void print_scrap_numbers(FILE *tex_file, Scrap_Node *scraps)
|
||||
{
|
||||
int page;
|
||||
fputs("\\NWlink{nuweb", tex_file);
|
||||
@@ -460,6 +640,8 @@ static void print_scrap_numbers(tex_file, scraps)
|
||||
}
|
||||
fputs(".\n", tex_file);
|
||||
}
|
||||
|
||||
#line 2535 "nuweb.w"
|
||||
static char *orig_delimit_scrap[3][5] = {
|
||||
/* {} mode: begin, end, insert nw_char, prefix, suffix */
|
||||
{ "\\verb@", "@", "@{\\tt @}\\verb@", "\\mbox{}", "\\\\" },
|
||||
@@ -470,6 +652,8 @@ static char *orig_delimit_scrap[3][5] = {
|
||||
};
|
||||
|
||||
static char *delimit_scrap[3][5];
|
||||
|
||||
#line 2554 "nuweb.w"
|
||||
void initialise_delimit_scrap_array() {
|
||||
int i,j;
|
||||
for(i = 0; i < 3; i++) {
|
||||
@@ -495,7 +679,11 @@ void initialise_delimit_scrap_array() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#line 2586 "nuweb.w"
|
||||
int scrap_type = 0;
|
||||
|
||||
#line 2590 "nuweb.w"
|
||||
static void write_literal(FILE * tex_file, char * p, int mode)
|
||||
{
|
||||
fputs(delimit_scrap[mode][0], tex_file);
|
||||
@@ -508,10 +696,9 @@ static void write_literal(FILE * tex_file, char * p, int mode)
|
||||
}
|
||||
fputs(delimit_scrap[mode][1], tex_file);
|
||||
}
|
||||
static void copy_scrap(file, prefix, name)
|
||||
FILE *file;
|
||||
int prefix;
|
||||
Name * name;
|
||||
|
||||
#line 2605 "nuweb.w"
|
||||
static void copy_scrap(FILE *file, int prefix, Name *name)
|
||||
{
|
||||
int indent = 0;
|
||||
int c;
|
||||
@@ -531,7 +718,9 @@ static void copy_scrap(file, prefix, name)
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
indent = 0;
|
||||
break;
|
||||
case '\t': {
|
||||
case '\t':
|
||||
#line 2680 "nuweb.w"
|
||||
{
|
||||
int delta = 8 - (indent % 8);
|
||||
indent += delta;
|
||||
while (delta > 0) {
|
||||
@@ -539,41 +728,69 @@ static void copy_scrap(file, prefix, name)
|
||||
delta--;
|
||||
}
|
||||
}
|
||||
#line 2625 "nuweb.w"
|
||||
|
||||
break;
|
||||
default:
|
||||
if (c==nw_char)
|
||||
{
|
||||
/* Check at-sequence for end-of-scrap */
|
||||
|
||||
#line 2690 "nuweb.w"
|
||||
{
|
||||
c = source_get();
|
||||
switch (c) {
|
||||
case 'c': {
|
||||
case 'c':
|
||||
#line 1714 "nuweb.w"
|
||||
{
|
||||
fputs(delimit_scrap[scrap_type][1],file);
|
||||
fprintf(file, "\\hbox{\\sffamily\\slshape (Comment)}");
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
}
|
||||
|
||||
#line 2693 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'x': {
|
||||
case 'x':
|
||||
#line 2749 "nuweb.w"
|
||||
{
|
||||
/* Get label from */
|
||||
|
||||
#line 6398 "nuweb.w"
|
||||
char label_name[MAX_NAME_LEN];
|
||||
char * p = label_name;
|
||||
while (c = source_get(), c != nw_char) /* Here is 150a-01 */
|
||||
while (c =
|
||||
#line 2750 "nuweb.w"
|
||||
source_get(), c != nw_char) /* Here is 151a-01 */
|
||||
*p++ = c;
|
||||
*p = '\0';
|
||||
c = source_get();
|
||||
c =
|
||||
#line 2750 "nuweb.w"
|
||||
source_get();
|
||||
|
||||
write_label(label_name, file);
|
||||
#line 2750 "nuweb.w"
|
||||
|
||||
write_label(label_name,
|
||||
#line 2695 "nuweb.w"
|
||||
file);
|
||||
}
|
||||
#line 2695 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'v': fputs(version_string, file);
|
||||
case 'v':
|
||||
#line 2745 "nuweb.w"
|
||||
fputs(version_string, file);
|
||||
|
||||
#line 2697 "nuweb.w"
|
||||
|
||||
case 's':
|
||||
break;
|
||||
case '+':
|
||||
case '-':
|
||||
case '*':
|
||||
case '|': {
|
||||
case '|':
|
||||
#line 2758 "nuweb.w"
|
||||
{
|
||||
do {
|
||||
do
|
||||
c = source_get();
|
||||
@@ -581,12 +798,16 @@ static void copy_scrap(file, prefix, name)
|
||||
c = source_get();
|
||||
} while (c != '}' && c != ']' && c != ')' );
|
||||
}
|
||||
#line 2703 "nuweb.w"
|
||||
|
||||
case ',':
|
||||
case ')':
|
||||
case ']':
|
||||
case '}': fputs(delimit_scrap[scrap_type][1], file);
|
||||
return;
|
||||
case '<': {
|
||||
case '<':
|
||||
#line 2798 "nuweb.w"
|
||||
{
|
||||
Arglist *args = collect_scrap_name(-1);
|
||||
Name *name = args->name;
|
||||
char * p = name->spelling;
|
||||
@@ -616,6 +837,8 @@ static void copy_scrap(file, prefix, name)
|
||||
if (scrap_name_has_parameters) {
|
||||
/* Format macro parameters */
|
||||
|
||||
#line 1962 "nuweb.w"
|
||||
|
||||
char sep;
|
||||
|
||||
sep = '(';
|
||||
@@ -642,10 +865,14 @@ static void copy_scrap(file, prefix, name)
|
||||
c = source_get();
|
||||
}
|
||||
|
||||
#line 2826 "nuweb.w"
|
||||
|
||||
}
|
||||
fprintf(file, "{\\footnotesize ");
|
||||
if (name->defs)
|
||||
/* Write abbreviated definition list */
|
||||
|
||||
#line 2844 "nuweb.w"
|
||||
{
|
||||
Scrap_Node *p = name->defs;
|
||||
fputs("\\NWlink{nuweb", file);
|
||||
@@ -657,6 +884,8 @@ static void copy_scrap(file, prefix, name)
|
||||
if (p)
|
||||
fputs(", \\ldots\\ ", file);
|
||||
}
|
||||
#line 2830 "nuweb.w"
|
||||
|
||||
else {
|
||||
putc('?', file);
|
||||
fprintf(stderr, "%s: never defined <%s>\n",
|
||||
@@ -667,14 +896,22 @@ static void copy_scrap(file, prefix, name)
|
||||
fputs("}", file);
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
}
|
||||
#line 2709 "nuweb.w"
|
||||
|
||||
break;
|
||||
case '%': {
|
||||
case '%':
|
||||
#line 2768 "nuweb.w"
|
||||
{
|
||||
do
|
||||
c = source_get();
|
||||
while (c != '\n');
|
||||
}
|
||||
#line 2711 "nuweb.w"
|
||||
|
||||
break;
|
||||
case '_': {
|
||||
case '_':
|
||||
#line 2777 "nuweb.w"
|
||||
{
|
||||
fputs(delimit_scrap[scrap_type][1],file);
|
||||
fprintf(file, "\\hbox{\\sffamily\\bfseries ");
|
||||
c = source_get();
|
||||
@@ -686,18 +923,28 @@ static void copy_scrap(file, prefix, name)
|
||||
fprintf(file, "}");
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
}
|
||||
#line 2713 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 't': {
|
||||
case 't':
|
||||
#line 2791 "nuweb.w"
|
||||
{
|
||||
fputs(delimit_scrap[scrap_type][1],file);
|
||||
fprintf(file, "\\hbox{\\sffamily\\slshape fragment title}");
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
}
|
||||
#line 2715 "nuweb.w"
|
||||
|
||||
break;
|
||||
case 'f': {
|
||||
case 'f':
|
||||
#line 2791 "nuweb.w"
|
||||
{
|
||||
fputs(delimit_scrap[scrap_type][1],file);
|
||||
fprintf(file, "\\hbox{\\sffamily\\slshape file name}");
|
||||
fputs(delimit_scrap[scrap_type][0], file);
|
||||
}
|
||||
#line 2717 "nuweb.w"
|
||||
|
||||
break;
|
||||
case '1': case '2': case '3':
|
||||
case '4': case '5': case '6':
|
||||
@@ -723,6 +970,8 @@ static void copy_scrap(file, prefix, name)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#line 2630 "nuweb.w"
|
||||
|
||||
break;
|
||||
}
|
||||
putc(c, file);
|
||||
@@ -732,6 +981,8 @@ static void copy_scrap(file, prefix, name)
|
||||
c = source_get();
|
||||
}
|
||||
}
|
||||
|
||||
#line 2646 "nuweb.w"
|
||||
void update_delimit_scrap()
|
||||
{
|
||||
/* {}-mode begin */
|
||||
@@ -759,6 +1010,8 @@ void update_delimit_scrap()
|
||||
/* ()-mode insert nw_char */
|
||||
delimit_scrap[2][2][0] = nw_char;
|
||||
}
|
||||
|
||||
#line 2857 "nuweb.w"
|
||||
static void
|
||||
write_ArglistElement(FILE * file, Arglist * args, char ** params)
|
||||
{
|
||||
@@ -801,6 +1054,8 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
|
||||
|
||||
/* Format macro parameters */
|
||||
|
||||
#line 1962 "nuweb.w"
|
||||
|
||||
char sep;
|
||||
|
||||
sep = '(';
|
||||
@@ -827,10 +1082,14 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
|
||||
c = source_get();
|
||||
}
|
||||
|
||||
#line 2897 "nuweb.w"
|
||||
|
||||
}
|
||||
fprintf(file, "{\\footnotesize ");
|
||||
if (name->defs)
|
||||
/* Write abbreviated definition list */
|
||||
|
||||
#line 2844 "nuweb.w"
|
||||
{
|
||||
Scrap_Node *p = name->defs;
|
||||
fputs("\\NWlink{nuweb", file);
|
||||
@@ -842,6 +1101,8 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
|
||||
if (p)
|
||||
fputs(", \\ldots\\ ", file);
|
||||
}
|
||||
#line 2901 "nuweb.w"
|
||||
|
||||
else {
|
||||
putc('?', file);
|
||||
fprintf(stderr, "%s: never defined <%s>\n",
|
||||
@@ -850,17 +1111,21 @@ write_ArglistElement(FILE * file, Arglist * args, char ** params)
|
||||
fputs("}$\\,\\rangle$", file);
|
||||
}
|
||||
}
|
||||
static void format_file_entry(name, tex_file)
|
||||
Name *name;
|
||||
FILE *tex_file;
|
||||
|
||||
#line 2927 "nuweb.w"
|
||||
static void format_file_entry(Name *name, FILE *tex_file)
|
||||
{
|
||||
while (name) {
|
||||
format_file_entry(name->llink, tex_file);
|
||||
/* Format a file index entry */
|
||||
|
||||
#line 2938 "nuweb.w"
|
||||
fputs("\\item ", tex_file);
|
||||
fprintf(tex_file, "\\verb%c\"%s\"%c ", nw_char, name->spelling, nw_char);
|
||||
/* Write file's defining scrap numbers */
|
||||
{
|
||||
|
||||
#line 2944 "nuweb.w"
|
||||
{
|
||||
Scrap_Node *p = name->defs;
|
||||
fputs("{\\footnotesize {\\NWtxtDefBy}", tex_file);
|
||||
if (p->next) {
|
||||
@@ -879,10 +1144,16 @@ static void format_file_entry(name, tex_file)
|
||||
}
|
||||
putc('}', tex_file);
|
||||
}
|
||||
#line 2940 "nuweb.w"
|
||||
|
||||
putc('\n', tex_file);
|
||||
#line 2931 "nuweb.w"
|
||||
|
||||
name = name->rlink;
|
||||
}
|
||||
}
|
||||
|
||||
#line 2986 "nuweb.w"
|
||||
static int load_entry(Name * name, Name ** nms, int n)
|
||||
{
|
||||
while (name) {
|
||||
@@ -892,16 +1163,17 @@ static int load_entry(Name * name, Name ** nms, int n)
|
||||
}
|
||||
return n;
|
||||
}
|
||||
static void format_entry(name, tex_file, sector)
|
||||
Name *name;
|
||||
FILE *tex_file;
|
||||
unsigned char sector;
|
||||
|
||||
#line 2998 "nuweb.w"
|
||||
static void format_entry(Name *name, FILE *tex_file, unsigned char sector)
|
||||
{
|
||||
Name ** nms = malloc(num_scraps()*sizeof(Name *));
|
||||
int n = load_entry(name, nms, 0);
|
||||
int i;
|
||||
|
||||
/* Sort 'nms' of size 'n' for <Rob's ordering> */
|
||||
|
||||
#line 3018 "nuweb.w"
|
||||
int j;
|
||||
for (j = 1; j < n; j++)
|
||||
{
|
||||
@@ -912,7 +1184,9 @@ static void format_entry(name, tex_file, sector)
|
||||
{
|
||||
Name * ki = nms[i];
|
||||
|
||||
if (robs_strcmp(ki->spelling, kj->spelling) < 0)
|
||||
if (
|
||||
#line 3015 "nuweb.w"
|
||||
robs_strcmp(ki->spelling, kj->spelling) < 0)
|
||||
break;
|
||||
nms[i + 1] = ki;
|
||||
i -= 1;
|
||||
@@ -920,15 +1194,21 @@ static void format_entry(name, tex_file, sector)
|
||||
nms[i + 1] = kj;
|
||||
}
|
||||
|
||||
#line 3004 "nuweb.w"
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
Name * name = nms[i];
|
||||
|
||||
/* Format an index entry */
|
||||
|
||||
#line 3038 "nuweb.w"
|
||||
if (name->sector == sector){
|
||||
fputs("\\item ", tex_file);
|
||||
fputs("$\\langle\\,$", tex_file);
|
||||
/* Write the macro's name */
|
||||
|
||||
#line 2306 "nuweb.w"
|
||||
{
|
||||
char * p = name->spelling;
|
||||
int i = 0;
|
||||
@@ -942,8 +1222,12 @@ static void format_entry(name, tex_file, sector)
|
||||
fputc(*p++, tex_file);
|
||||
}
|
||||
}
|
||||
#line 3041 "nuweb.w"
|
||||
|
||||
fputs("\\nobreak\\ {\\footnotesize ", tex_file);
|
||||
/* Write defining scrap numbers */
|
||||
|
||||
#line 3050 "nuweb.w"
|
||||
{
|
||||
Scrap_Node *p = name->defs;
|
||||
if (p) {
|
||||
@@ -966,8 +1250,12 @@ static void format_entry(name, tex_file, sector)
|
||||
else
|
||||
putc('?', tex_file);
|
||||
}
|
||||
#line 3043 "nuweb.w"
|
||||
|
||||
fputs("}$\\,\\rangle$ ", tex_file);
|
||||
/* Write referencing scrap numbers */
|
||||
|
||||
#line 3074 "nuweb.w"
|
||||
{
|
||||
Scrap_Node *p = name->uses;
|
||||
fputs("{\\footnotesize ", tex_file);
|
||||
@@ -992,10 +1280,16 @@ static void format_entry(name, tex_file, sector)
|
||||
fputs("{\\NWtxtNoRef}.", tex_file);
|
||||
putc('}', tex_file);
|
||||
}
|
||||
#line 3045 "nuweb.w"
|
||||
|
||||
putc('\n', tex_file);
|
||||
}
|
||||
#line 3009 "nuweb.w"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#line 3104 "nuweb.w"
|
||||
int has_sector(Name * name, unsigned char sector)
|
||||
{
|
||||
while(name) {
|
||||
@@ -1007,14 +1301,15 @@ int has_sector(Name * name, unsigned char sector)
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
static void format_user_entry(name, tex_file, sector)
|
||||
Name *name;
|
||||
FILE *tex_file;
|
||||
unsigned char sector;
|
||||
|
||||
#line 3136 "nuweb.w"
|
||||
static void format_user_entry(Name *name, FILE *tex_file, unsigned char sector)
|
||||
{
|
||||
while (name) {
|
||||
format_user_entry(name->llink, tex_file, sector);
|
||||
/* Format a user index entry */
|
||||
|
||||
#line 3148 "nuweb.w"
|
||||
if (name->sector == sector){
|
||||
Scrap_Node *uses = name->uses;
|
||||
if ( uses || dangling_flag ) {
|
||||
@@ -1081,6 +1376,8 @@ static void format_user_entry(name, tex_file, sector)
|
||||
fputs(".\n", tex_file);
|
||||
}
|
||||
}
|
||||
#line 3140 "nuweb.w"
|
||||
|
||||
name = name->rlink;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user