--- a/src/Tools/8bit/c-sources/isa2latex/conv-lex.x Wed Nov 05 15:42:30 1997 +0100
+++ b/src/Tools/8bit/c-sources/isa2latex/conv-lex.x Wed Nov 05 15:45:51 1997 +0100
@@ -18,7 +18,7 @@
extern FILE *finput, *foutput;
extern int tabBlanks;
extern int tabcount;
-extern char isa_env_beg[], isa_env_end[];
+extern char isa_env_beg0[], isa_env_beg1[], isa_env_end[];
extern int convMode;
extern int accept_ASCII;
extern int destCode;
@@ -44,11 +44,14 @@
else
BEGIN_ISA;
-<LATEX>\\I@ { BEGIN_ISA; inline_mode=TRUE ; fprintf(foutput,
- "{\\isainline{"); }
-<LATEX>\\I@isa[ \t]*\n? { BEGIN_ISA; inline_mode=FALSE; fprintf(foutput,
- isa_env_beg); reset_tabs();
- if (yytext[strlen(yytext)-1] == '\n') lineno++;
+<LATEX>\\I@@? { BEGIN_ISA; inline_mode=TRUE ; fprintf(foutput,
+ (yytext[3]=='@' ? "\\mbox{\\isainline[\\isamodify]{"
+ : "\\mbox{\\isainline{")); }
+<LATEX>\\I@isa@?[ \t]*\n? { BEGIN_ISA; inline_mode=FALSE; fprintf(foutput,
+ (yytext[6]=='@' ? isa_env_beg1
+ : isa_env_beg0)); reset_tabs();
+ if (yytext[strlen(yytext)-1] == '\n')
+ { fprintf(foutput, "\n"); lineno++; }
}
<LATEX>\\E@ { ECHO; not_suitable("\\E@","LATEX"); }
<LATEX>\n { put(*yytext,FALSE,0); lineno++; }
@@ -59,7 +62,9 @@
else
{ ECHO; not_suitable("\\I@","ISA"); }
}
-<ISA,ISAA>\n?[ \t]*\\I@isa { if (inline_mode)
+<ISA,ISAA>\n?[ \t]*\\I@isa {if (yytext[0] == '\n')
+ { fprintf(foutput, "\n"); lineno++; };
+ if (inline_mode)
{ ECHO; not_suitable("\\I@isa","INLINE"); }
else
{ if (convMode == MIXED) {
@@ -68,7 +73,6 @@
ECHO; warning(
"\\I@isa only allowed with -x option"); }
}
- if (yytext[0] == '\n') lineno++;
}
<ISA,ISAA>\\E@ { BEGIN ESC; fprintf(foutput, "{\\isaescape{"); }
<ISA,ISAA><<EOF>> { if (convMode == MIXED)
@@ -96,129 +100,162 @@
/* The following is generated by the perl script gen-isa2latex. */
/* Make modifications in configuration file for gen-isa2latex! */
/* BEGIN_OF_HI_TABLE */
-<ISAA>\\Gamma\ put((char)161,FALSE,0);
-<ISAA>\\Delta\ put((char)162,FALSE,0);
-<ISAA>\\Theta\ put((char)163,FALSE,0);
-<ISAA>LAM\ put((char)164,FALSE,0);
-<ISAA>\\Pi\ put((char)165,FALSE,0);
-<ISAA>\\Sigma\ put((char)166,FALSE,0);
-<ISAA>\\Phi\ put((char)167,FALSE,0);
-<ISAA>\\Psi\ put((char)168,FALSE,0);
-<ISAA>\\Omega\ put((char)169,FALSE,0);
-<ISAA>'a put((char)170,FALSE,0);
-<ISAA>'b put((char)171,FALSE,0);
-<ISAA>'c put((char)172,FALSE,0);
-<ISAA>\\delta\ put((char)173,FALSE,0);
-<ISAA>\\varepsilon\ put((char)174,FALSE,0);
-<ISAA>\\zeta\ put((char)175,FALSE,0);
-<ISAA>\\eta\ put((char)176,FALSE,0);
-<ISAA>\\vartheta\ put((char)177,FALSE,0);
-<ISAA>\\kappa\ put((char)178,FALSE,0);
-<ISAA>%\ put((char)179,FALSE,0);
-<ISAA>\\mu\ put((char)180,FALSE,0);
-<ISAA>\\nu\ put((char)181,FALSE,0);
-<ISAA>\\xi\ put((char)182,FALSE,0);
-<ISAA>\\pi\ put((char)183,FALSE,0);
-<ISAA>'r put((char)184,FALSE,0);
-<ISAA>'s put((char)185,FALSE,0);
-<ISAA>'t put((char)186,FALSE,0);
-<ISAA>\\varphi\ put((char)187,FALSE,0);
-<ISAA>\\chi\ put((char)188,FALSE,0);
-<ISAA>\\psi\ put((char)189,FALSE,0);
-<ISAA>\\omega\ put((char)190,FALSE,0);
-<ISAA>~\ put((char)191,FALSE,0);
-<ISAA>&\ put((char)192,FALSE,0);
-<ISAA>\|\ put((char)193,FALSE,0);
-<ISAA>!\ put((char)194,FALSE,0);
-<ISAA>\?\ put((char)195,FALSE,0);
-<ISAA>!! put((char)196,FALSE,0);
-<ISAA>\\lceil\ put((char)197,FALSE,0);
-<ISAA>\\rceil\ put((char)198,FALSE,0);
-<ISAA>\\lfloor\ put((char)199,FALSE,0);
-<ISAA>\\rfloor\ put((char)200,FALSE,0);
-<ISAA>\(\| put((char)201,FALSE,0);
-<ISAA>\|\) put((char)202,FALSE,0);
-<ISAA>\[\| put((char)203,FALSE,0);
-<ISAA>\|\] put((char)204,FALSE,0);
-<ISAA>{} put((char)205,FALSE,0);
-<ISAA>\ :\ put((char)206,FALSE,0);
-<ISAA>\subseteq\ put((char)207,FALSE,0);
-<ISAA>\ Int\ put((char)208,FALSE,0);
-<ISAA>\ Un\ put((char)209,FALSE,0);
-<ISAA>Inter\ put((char)210,FALSE,0);
-<ISAA>Union\ put((char)211,FALSE,0);
-<ISAA>\sqcap\ put((char)212,FALSE,0);
-<ISAA>\sqcup\ put((char)213,FALSE,0);
-<ISAA>glb\ put((char)214,FALSE,0);
-<ISAA>lub\ put((char)215,FALSE,0);
-<ISAA>UU put((char)216,FALSE,0);
-<ISAA>=== put((char)217,FALSE,0);
-<ISAA>== put((char)218,FALSE,0);
-<ISAA>~= put((char)219,FALSE,0);
-<ISAA>\\sqsubset\ put((char)220,FALSE,0);
-<ISAA><< put((char)221,FALSE,0);
-<ISAA>\\prec\ put((char)222,FALSE,0);
-<ISAA>\\preceq\ put((char)223,FALSE,0);
-<ISAA>\\succ\ put((char)224,FALSE,0);
-<ISAA>\\succeq\ put((char)225,FALSE,0);
-<ISAA>\\sim\ put((char)226,FALSE,0);
-<ISAA>\\simeq\ put((char)227,FALSE,0);
-<ISAA>\\le\ put((char)228,FALSE,0);
-<ISAA>\\ge\ put((char)229,FALSE,0);
-<ISAA><- put((char)230,FALSE,0);
-<ISAA>-@@@@@ put((char)231,FALSE,0);
-<ISAA>-> put((char)232,FALSE,0);
-<ISAA>\\Leftarrow\ put((char)233,FALSE,0);
-<ISAA>=@@@@@ put((char)234,FALSE,0);
-<ISAA>=> put((char)235,FALSE,0);
-<ISAA>->> put((char)236,FALSE,0);
-<ISAA>\\mapsto\ put((char)237,FALSE,0);
-<ISAA>\\leadsto\ put((char)238,FALSE,0);
-<ISAA>\\uparrow\ put((char)239,FALSE,0);
-<ISAA>\\downarrow\ put((char)240,FALSE,0);
-<ISAA>~: put((char)241,FALSE,0);
-<ISAA>\\times\ put((char)242,FALSE,0);
-<ISAA>\\oplus\ put((char)243,FALSE,0);
-<ISAA>\\ominus\ put((char)244,FALSE,0);
-<ISAA>\\otimes\ put((char)245,FALSE,0);
-<ISAA>\\oslash\ put((char)246,FALSE,0);
-<ISAA>\\natural\ put((char)247,FALSE,0);
-<ISAA>\\infty\ put((char)248,FALSE,0);
-<ISAA>\\Box\ put((char)249,FALSE,0);
-<ISAA>\\Diamond\ put((char)250,FALSE,0);
-<ISAA>\\circ\ put((char)251,FALSE,0);
-<ISAA>\\bullet\ put((char)252,FALSE,0);
-<ISAA>\|\| put((char)253,FALSE,0);
-<ISAA>\\tick\ put((char)254,FALSE,0);
-<ISAA>\\filter\ put((char)255,FALSE,0);
+<ISAA>\ \ put((char)160,FALSE,0);
+<ISAA>\\Gamma put((char)161,FALSE,0);
+<ISAA>\\Delta put((char)162,FALSE,0);
+<ISAA>\\Theta put((char)163,FALSE,0);
+<ISAA>LAM\ put((char)164,FALSE,0);
+<ISAA>\\Pi put((char)165,FALSE,0);
+<ISAA>\\Sigma put((char)166,FALSE,0);
+<ISAA>\\Phi put((char)167,FALSE,0);
+<ISAA>\\Psi put((char)168,FALSE,0);
+<ISAA>\\Omega put((char)169,FALSE,0);
+<ISAA>'a put((char)170,FALSE,0);
+<ISAA>'b put((char)171,FALSE,0);
+<ISAA>'c put((char)172,FALSE,0);
+<ISAA>\\delta put((char)173,FALSE,0);
+<ISAA>\\varepsilon put((char)174,FALSE,0);
+<ISAA>\\zeta put((char)175,FALSE,0);
+<ISAA>\\eta put((char)176,FALSE,0);
+<ISAA>\\vartheta put((char)177,FALSE,0);
+<ISAA>\\kappa put((char)178,FALSE,0);
+<ISAA>%\ put((char)179,FALSE,0);
+<ISAA>\\mu put((char)180,FALSE,0);
+<ISAA>\\nu put((char)181,FALSE,0);
+<ISAA>\\xi put((char)182,FALSE,0);
+<ISAA>\\pi put((char)183,FALSE,0);
+<ISAA>'r put((char)184,FALSE,0);
+<ISAA>'s put((char)185,FALSE,0);
+<ISAA>'t put((char)186,FALSE,0);
+<ISAA>\\varphi put((char)187,FALSE,0);
+<ISAA>\\chi put((char)188,FALSE,0);
+<ISAA>\\psi put((char)189,FALSE,0);
+<ISAA>\\omega put((char)190,FALSE,0);
+<ISAA>~\ put((char)191,FALSE,0);
+<ISAA>&\ put((char)192,FALSE,0);
+<ISAA>\|\ put((char)193,FALSE,0);
+<ISAA>!\ put((char)194,FALSE,0);
+<ISAA>\?\ put((char)195,FALSE,0);
+<ISAA>!! put((char)196,FALSE,0);
+<ISAA>\\lceil put((char)197,FALSE,0);
+<ISAA>\\rceil put((char)198,FALSE,0);
+<ISAA>\\lfloor put((char)199,FALSE,0);
+<ISAA>\\rfloor put((char)200,FALSE,0);
+<ISAA>\|- put((char)201,FALSE,0);
+<ISAA>\|= put((char)202,FALSE,0);
+<ISAA>\[\| put((char)203,FALSE,0);
+<ISAA>\|\] put((char)204,FALSE,0);
+<ISAA>\\cdot put((char)205,FALSE,0);
+<ISAA>\ :\ put((char)206,FALSE,0);
+<ISAA>\ \subseteq\ put((char)207,FALSE,0);
+<ISAA>\ Int\ put((char)208,FALSE,0);
+<ISAA>\ Un\ put((char)209,FALSE,0);
+<ISAA>Inter\ put((char)210,FALSE,0);
+<ISAA>Union\ put((char)211,FALSE,0);
+<ISAA>\\sqcap put((char)212,FALSE,0);
+<ISAA>\\sqcup put((char)213,FALSE,0);
+<ISAA>glb\ put((char)214,FALSE,0);
+<ISAA>LUB\ put((char)215,FALSE,0);
+<ISAA>UU put((char)216,FALSE,0);
+<ISAA>=== put((char)217,FALSE,0);
+<ISAA>== put((char)218,FALSE,0);
+<ISAA>~= put((char)219,FALSE,0);
+<ISAA>\\sqsubset put((char)220,FALSE,0);
+<ISAA><< put((char)221,FALSE,0);
+<ISAA><: put((char)222,FALSE,0);
+<ISAA><=: put((char)223,FALSE,0);
+<ISAA>:> put((char)224,FALSE,0);
+<ISAA>~~ put((char)225,FALSE,0);
+<ISAA>\\sim\ put((char)226,FALSE,0);
+<ISAA>\\simeq put((char)227,FALSE,0);
+<ISAA><= put((char)228,FALSE,0);
+<ISAA>:: put((char)229,FALSE,0);
+<ISAA><- put((char)230,FALSE,0);
+<ISAA>-@@@@@ put((char)231,FALSE,0);
+<ISAA>-> put((char)232,FALSE,0);
+<ISAA>\\Leftarrow put((char)233,FALSE,0);
+<ISAA>=@@@@@ put((char)234,FALSE,0);
+<ISAA>=> put((char)235,FALSE,0);
+<ISAA>\\frown put((char)236,FALSE,0);
+<ISAA>\\mapsto put((char)237,FALSE,0);
+<ISAA>\\leadsto put((char)238,FALSE,0);
+<ISAA>\\uparrow put((char)239,FALSE,0);
+<ISAA>\\downarrow put((char)240,FALSE,0);
+<ISAA>~: put((char)241,FALSE,0);
+<ISAA>\\times put((char)242,FALSE,0);
+<ISAA>\\oplus put((char)243,FALSE,0);
+<ISAA>\\ominus put((char)244,FALSE,0);
+<ISAA>\\otimes put((char)245,FALSE,0);
+<ISAA>\\oslash put((char)246,FALSE,0);
+<ISAA>\\subset put((char)247,FALSE,0);
+<ISAA>\\infty put((char)248,FALSE,0);
+<ISAA>\\Box put((char)249,FALSE,0);
+<ISAA>\\Diamond put((char)250,FALSE,0);
+<ISAA>\\circ put((char)251,FALSE,0);
+<ISAA>\\bullet put((char)252,FALSE,0);
+<ISAA>\|\| put((char)253,FALSE,0);
+<ISAA>\\tick put((char)254,FALSE,0);
+<ISAA>\\filter put((char)255,FALSE,0);
/* END_OF_HI_TABLE */
/* This is the end of the generated part */
/* The following is generated by the perl script gen-isa2latex. */
/* Make modifications in configuration file for gen-isa2latex! */
/* BEGIN_OF_SEQ_TABLE */
-<ISA,ISAA>êë put((char)32,TRUE,0);
-<ISAA>==> put((char)32,TRUE,0);
-<ISA,ISAA>çè put((char)32,TRUE,1);
-<ISAA>--> put((char)32,TRUE,1);
-<ISA,ISAA>Ã! put((char)32,TRUE,2);
-<ISAA>\?! put((char)32,TRUE,2);
-<ISA,ISAA>ALL@@@@@ put((char)32,TRUE,3);
-<ISAA>ALL\ put((char)32,TRUE,3);
-<ISA,ISAA>EX@@@@@ put((char)32,TRUE,4);
-<ISAA>EX\ put((char)32,TRUE,4);
-<ISA,ISAA><\|@@@@@ put((char)32,TRUE,5);
-<ISAA><\| put((char)32,TRUE,5);
-<ISA,ISAA><<\|@@@@@ put((char)32,TRUE,6);
-<ISAA><<\| put((char)32,TRUE,6);
-<ISA,ISAA>éê put((char)32,TRUE,7);
-<ISAA><== put((char)32,TRUE,7);
-<ISA,ISAA>éë put((char)32,TRUE,8);
-<ISAA><=> put((char)32,TRUE,8);
-<ISA,ISAA>æç put((char)32,TRUE,9);
-<ISAA><-- put((char)32,TRUE,9);
-<ISA,ISAA>æè put((char)32,TRUE,10);
-<ISAA><-> put((char)32,TRUE,10);
+<ISA,ISAA>êë put((char)32,TRUE,0);
+<ISAA>==> put((char)32,TRUE,0);
+<ISA,ISAA>çè put((char)32,TRUE,1);
+<ISAA>--> put((char)32,TRUE,1);
+<ISA,ISAA>Ã! put((char)32,TRUE,2);
+<ISAA>\?! put((char)32,TRUE,2);
+<ISA,ISAA>ALL@@@@@ put((char)32,TRUE,3);
+<ISAA>ALL\ put((char)32,TRUE,3);
+<ISA,ISAA>EX@@@@@ put((char)32,TRUE,4);
+<ISAA>EX\ put((char)32,TRUE,4);
+<ISA,ISAA><<\| put((char)32,TRUE,5);
+<ISAA><<\| put((char)32,TRUE,5);
+<ISA,ISAA><\| put((char)32,TRUE,6);
+<ISAA><\| put((char)32,TRUE,6);
+<ISA,ISAA>éê put((char)32,TRUE,7);
+<ISAA><== put((char)32,TRUE,7);
+<ISA,ISAA>éë put((char)32,TRUE,8);
+<ISAA><=> put((char)32,TRUE,8);
+<ISA,ISAA>æç put((char)32,TRUE,9);
+<ISAA><-- put((char)32,TRUE,9);
+<ISA,ISAA>æè put((char)32,TRUE,10);
+<ISAA><-> put((char)32,TRUE,10);
+<ISA,ISAA>\^-1 put((char)32,TRUE,11);
+<ISAA>\^-1 put((char)32,TRUE,11);
+<ISA,ISAA>arities put((char)32,TRUE,12);
+<ISAA>@arities put((char)32,TRUE,12);
+<ISA,ISAA>axclass put((char)32,TRUE,13);
+<ISAA>@axclass put((char)32,TRUE,13);
+<ISA,ISAA>constdefs put((char)32,TRUE,14);
+<ISAA>@constdefs put((char)32,TRUE,14);
+<ISA,ISAA>consts put((char)32,TRUE,15);
+<ISAA>@consts put((char)32,TRUE,15);
+<ISA,ISAA>datatype put((char)32,TRUE,16);
+<ISAA>@datatype put((char)32,TRUE,16);
+<ISA,ISAA>defs put((char)32,TRUE,17);
+<ISAA>@defs put((char)32,TRUE,17);
+<ISA,ISAA>domain put((char)32,TRUE,18);
+<ISAA>@domain put((char)32,TRUE,18);
+<ISA,ISAA>inductive put((char)32,TRUE,19);
+<ISAA>@inductive put((char)32,TRUE,19);
+<ISA,ISAA>instance put((char)32,TRUE,20);
+<ISAA>@instance put((char)32,TRUE,20);
+<ISA,ISAA>primrec put((char)32,TRUE,21);
+<ISAA>@primrec put((char)32,TRUE,21);
+<ISA,ISAA>recdef put((char)32,TRUE,22);
+<ISAA>@recdef put((char)32,TRUE,22);
+<ISA,ISAA>rules put((char)32,TRUE,23);
+<ISAA>@rules put((char)32,TRUE,23);
+<ISA,ISAA>translations put((char)32,TRUE,24);
+<ISAA>@translations put((char)32,TRUE,24);
+<ISA,ISAA>typedef put((char)32,TRUE,25);
+<ISAA>@typedef put((char)32,TRUE,25);
+<ISA,ISAA>types put((char)32,TRUE,26);
+<ISAA>@types put((char)32,TRUE,26);
/* END_OF_SEQ_TABLE */
/* This is the end of the generated part */
@@ -247,6 +284,8 @@
void put(char c, int longDetect,int longCode)
{
int i;
+ char s[100];
+ extern char *translateHi(int ch, int code);
if (YY_START == LATEX || YY_START == ESC)
/* do not translate in these modes */
@@ -260,7 +299,12 @@
}
else /* lexer has not scanned a long sequence */
if (c & 0x80) { /* Hi-bit is set... */
- fprintf(foutput, "%s", translateHi(c, destCode));
+ strcpy(s, translateHi(c, destCode));
+ i = strlen(s);
+ if((unsigned char)c != 0xa0 &&
+ i >= 2 && s[i-2] == '\\' && s[i-1] == ' ' && (yytext[0] & 0x80))
+ s[i-2] ='\0';
+ fprintf(foutput, "%s", s);
if (destCode == TO_LaTeX && ++cc % tabBlanks == 0)
tabcount++;
}