src/Tools/8bit/c-sources/isa2latex/conv-lex.x
author wenzelm
Mon, 29 Nov 1999 15:52:49 +0100
changeset 8039 a901bafe4578
parent 5675 000879172ee4
permissions -rw-r--r--
Goal: tuned pris;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     1
/*  Title:      Tools/8bit/c-sources/isa2latex/conv-main.c
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     2
    ID:         $Id$
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     3
    Author:     Franz Regensburger
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     4
    Copyright   1996 TU Muenchen
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     5
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     6
converter for isabelle files
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     7
definitions for the lexical analyzer
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     8
*/
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     9
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    10
%{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    11
#include "conv-defs.h"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    12
#define output(c) fputc(c, yyout)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    13
#define BEGIN_ISA {	if (accept_ASCII)				\
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    14
				BEGIN ISAA;	/* we have -A option */	\
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    15
			else						\
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    16
				BEGIN ISA;}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    17
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    18
extern FILE *finput, *foutput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    19
extern int tabBlanks;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    20
extern int tabcount;
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    21
extern char isa_env_beg0[], isa_env_beg1[], isa_env_end[];
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    22
extern int convMode;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    23
extern int accept_ASCII;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    24
extern int destCode;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    25
extern int cc;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    26
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    27
void reset_tabs(void);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    28
void put(char c, int longDetect, int longCode);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    29
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    30
int lineno=1;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    31
int inline_mode=FALSE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    32
%}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    33
%S LATEX ISA ISAA ESC
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    34
%option noyywrap
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    35
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    36
%%
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    37
  void warning(char *what);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    38
  void not_suitable(char *what, char *where);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    39
  yyin = finput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    40
  yyout = foutput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    41
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    42
  if (convMode == MIXED)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    43
	BEGIN LATEX;	/* we have -x option */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    44
  else 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    45
	BEGIN_ISA;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    46
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    47
<LATEX>\\I@@?		{ BEGIN_ISA; inline_mode=TRUE ; fprintf(foutput, 
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    48
			  (yytext[3]=='@' ? "\\mbox{\\isainline[\\isamodify]{"
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    49
					  : "\\mbox{\\isainline{")); }
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    50
<LATEX>\\I@isa@?[ \t]*\n? { BEGIN_ISA; inline_mode=FALSE; fprintf(foutput, 
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    51
				(yytext[6]=='@' ? isa_env_beg1
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    52
						: isa_env_beg0)); reset_tabs(); 
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    53
			  if (yytext[strlen(yytext)-1] == '\n')
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    54
			  { fprintf(foutput, "\n"); lineno++; }
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    55
			}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    56
<LATEX>\\E@		{ ECHO; not_suitable("\\E@","LATEX"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    57
<LATEX>\n		{ put(*yytext,FALSE,0); lineno++; }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    58
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    59
<ISA,ISAA>\\I@		{ if (inline_mode) 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    60
			  { BEGIN LATEX; inline_mode=FALSE; 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    61
			    fprintf(foutput, "}}"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    62
			  else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    63
			  { ECHO; not_suitable("\\I@","ISA"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    64
			}
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    65
<ISA,ISAA>\n?[ \t]*\\I@isa {if (yytext[0] == '\n')
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    66
			    { fprintf(foutput, "\n"); lineno++; };
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    67
			  if (inline_mode)
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    68
			  { ECHO; not_suitable("\\I@isa","INLINE"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    69
			  else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    70
			  { if (convMode == MIXED) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    71
			      BEGIN LATEX; fprintf(foutput, isa_env_end); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    72
			    else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    73
			      ECHO; warning(
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    74
				"\\I@isa only allowed with -x option"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    75
			  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    76
			}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    77
<ISA,ISAA>\\E@		{ BEGIN ESC; fprintf(foutput, "{\\isaescape{"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    78
<ISA,ISAA><<EOF>>	{ if (convMode == MIXED) 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    79
			    not_suitable("EOF", inline_mode? "INLINE": "ISA");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    80
			   yyterminate(); 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    81
			}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    82
<ISA,ISAA>\n		{ if (inline_mode) 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    83
			  { ECHO; not_suitable("\\n","INLINE"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    84
			  else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    85
			  { put(*yytext,FALSE,0); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    86
			  lineno++;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    87
			}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    88
<ISA,ISAA>\t		{ if (inline_mode)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    89
			  { ECHO; not_suitable("\\t","INLINE"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    90
			  else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    91
			  { put(*yytext,FALSE,0); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    92
			}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    93
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    94
<ESC>\\I@		{ ECHO; not_suitable("\\I@"   ,"ESC"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    95
<ESC>\\I@isa		{ ECHO; not_suitable("\\I@isa","ESC"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    96
<ESC>\\E@		{ BEGIN_ISA; fprintf(foutput, "}}"); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    97
<ESC><<EOF>>		{       not_suitable("EOF"    ,"ESC"); yyterminate(); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    98
<ESC>\n			{ put(*yytext,FALSE,0); lineno++; }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    99
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   100
  /* The following is generated by the perl script gen-isa2latex. */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   101
  /* Make modifications in configuration file for gen-isa2latex!  */             
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   102
  /* BEGIN_OF_HI_TABLE */
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   103
<ISAA>\ \             	put((char)160,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   104
<ISAA>\\Gamma         	put((char)161,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   105
<ISAA>\\Delta         	put((char)162,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   106
<ISAA>\\Theta         	put((char)163,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   107
<ISAA>LAM\            	put((char)164,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   108
<ISAA>\\Pi            	put((char)165,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   109
<ISAA>\\Sigma         	put((char)166,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   110
<ISAA>\\Phi           	put((char)167,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   111
<ISAA>\\Psi           	put((char)168,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   112
<ISAA>\\Omega         	put((char)169,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   113
<ISAA>'a              	put((char)170,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   114
<ISAA>'b              	put((char)171,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   115
<ISAA>'c              	put((char)172,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   116
<ISAA>\\delta         	put((char)173,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   117
<ISAA>\\varepsilon    	put((char)174,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   118
<ISAA>\\zeta          	put((char)175,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   119
<ISAA>\\eta           	put((char)176,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   120
<ISAA>\\vartheta      	put((char)177,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   121
<ISAA>\\kappa         	put((char)178,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   122
<ISAA>%\              	put((char)179,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   123
<ISAA>\\mu            	put((char)180,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   124
<ISAA>\\nu            	put((char)181,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   125
<ISAA>\\xi            	put((char)182,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   126
<ISAA>\\pi            	put((char)183,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   127
<ISAA>'r              	put((char)184,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   128
<ISAA>'s              	put((char)185,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   129
<ISAA>'t              	put((char)186,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   130
<ISAA>\\varphi        	put((char)187,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   131
<ISAA>\\chi           	put((char)188,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   132
<ISAA>\\psi           	put((char)189,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   133
<ISAA>\\omega         	put((char)190,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   134
<ISAA>~\              	put((char)191,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   135
<ISAA>&\              	put((char)192,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   136
<ISAA>\|\             	put((char)193,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   137
<ISAA>!\              	put((char)194,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   138
<ISAA>\?\             	put((char)195,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   139
<ISAA>!!              	put((char)196,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   140
<ISAA>\\lceil         	put((char)197,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   141
<ISAA>\\rceil         	put((char)198,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   142
<ISAA>\\lfloor        	put((char)199,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   143
<ISAA>\\rfloor        	put((char)200,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   144
<ISAA>\|-             	put((char)201,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   145
<ISAA>\|=             	put((char)202,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   146
<ISAA>\[\|            	put((char)203,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   147
<ISAA>\|\]            	put((char)204,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   148
<ISAA>\\cdot          	put((char)205,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   149
<ISAA>\ :\            	put((char)206,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   150
<ISAA>\ \subseteq\    	put((char)207,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   151
<ISAA>\ Int\          	put((char)208,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   152
<ISAA>\ Un\           	put((char)209,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   153
<ISAA>Inter\          	put((char)210,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   154
<ISAA>Union\          	put((char)211,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   155
<ISAA>\\sqcap         	put((char)212,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   156
<ISAA>\\sqcup         	put((char)213,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   157
<ISAA>glb\            	put((char)214,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   158
<ISAA>LUB\            	put((char)215,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   159
<ISAA>UU              	put((char)216,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   160
<ISAA>===             	put((char)217,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   161
<ISAA>==              	put((char)218,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   162
<ISAA>~=              	put((char)219,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   163
<ISAA>\\sqsubset      	put((char)220,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   164
<ISAA><<              	put((char)221,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   165
<ISAA><:              	put((char)222,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   166
<ISAA><=:             	put((char)223,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   167
<ISAA>:>              	put((char)224,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   168
<ISAA>~~              	put((char)225,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   169
<ISAA>\\sim\          	put((char)226,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   170
<ISAA>\\simeq         	put((char)227,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   171
<ISAA><=              	put((char)228,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   172
<ISAA>::              	put((char)229,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   173
<ISAA><-              	put((char)230,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   174
<ISAA>-@@@@@          	put((char)231,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   175
<ISAA>->              	put((char)232,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   176
<ISAA>\\Leftarrow     	put((char)233,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   177
<ISAA>=@@@@@          	put((char)234,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   178
<ISAA>=>              	put((char)235,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   179
<ISAA>\\frown         	put((char)236,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   180
<ISAA>\\mapsto        	put((char)237,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   181
<ISAA>\\leadsto       	put((char)238,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   182
<ISAA>\\uparrow       	put((char)239,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   183
<ISAA>\\downarrow     	put((char)240,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   184
<ISAA>~:              	put((char)241,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   185
<ISAA>\\times         	put((char)242,FALSE,0);
5436
cff7d1e98376 improved spacing
oheimb
parents: 4773
diff changeset
   186
<ISAA>\+\+            	put((char)243,FALSE,0);
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   187
<ISAA>\\ominus        	put((char)244,FALSE,0);
5436
cff7d1e98376 improved spacing
oheimb
parents: 4773
diff changeset
   188
<ISAA>\*\*            	put((char)245,FALSE,0);
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   189
<ISAA>\\oslash        	put((char)246,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   190
<ISAA>\\subset        	put((char)247,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   191
<ISAA>\\infty         	put((char)248,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   192
<ISAA>\\Box           	put((char)249,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   193
<ISAA>\\Diamond       	put((char)250,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   194
<ISAA>\\circ          	put((char)251,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   195
<ISAA>\\bullet        	put((char)252,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   196
<ISAA>\|\|            	put((char)253,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   197
<ISAA>\\tick          	put((char)254,FALSE,0);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   198
<ISAA>\\filter        	put((char)255,FALSE,0);
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   199
  /* END_OF_HI_TABLE */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   200
  /* This is the end of the generated part */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   201
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   202
  /* The following is generated by the perl script gen-isa2latex. */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   203
  /* Make modifications in configuration file for gen-isa2latex!  */             
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   204
  /* BEGIN_OF_SEQ_TABLE */
4773
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   205
<ISA,ISAA>êë              	put((char)32,TRUE,0);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   206
<ISAA>==>                  	put((char)32,TRUE,0);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   207
<ISA,ISAA>çè              	put((char)32,TRUE,1);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   208
<ISAA>-->                  	put((char)32,TRUE,1);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   209
<ISA,ISAA>Ã!              	put((char)32,TRUE,2);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   210
<ISAA>\?!                  	put((char)32,TRUE,2);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   211
<ISA,ISAA>ALL@@@@@        	put((char)32,TRUE,3);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   212
<ISAA>ALL\                 	put((char)32,TRUE,3);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   213
<ISA,ISAA>EX@@@@@         	put((char)32,TRUE,4);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   214
<ISAA>EX\                  	put((char)32,TRUE,4);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   215
<ISA,ISAA><<\|            	put((char)32,TRUE,5);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   216
<ISAA>@<<\|                	put((char)32,TRUE,5);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   217
<ISA,ISAA><\|             	put((char)32,TRUE,6);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   218
<ISAA>@<\|                 	put((char)32,TRUE,6);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   219
<ISA,ISAA>éê              	put((char)32,TRUE,7);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   220
<ISAA><==                  	put((char)32,TRUE,7);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   221
<ISA,ISAA>éë              	put((char)32,TRUE,8);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   222
<ISAA><=>                  	put((char)32,TRUE,8);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   223
<ISA,ISAA>æç              	put((char)32,TRUE,9);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   224
<ISAA><--                  	put((char)32,TRUE,9);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   225
<ISA,ISAA>æè              	put((char)32,TRUE,10);
b6729feb8a5d improved \tt appearance of many ASCII special symbols like #
oheimb
parents: 4170
diff changeset
   226
<ISAA><->                  	put((char)32,TRUE,10);
5675
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   227
<ISA,ISAA>^and            	put((char)32,TRUE,11);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   228
<ISAA>^@and                	put((char)32,TRUE,11);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   229
<ISA,ISAA>^arities        	put((char)32,TRUE,12);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   230
<ISAA>^@arities            	put((char)32,TRUE,12);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   231
<ISA,ISAA>^axclass        	put((char)32,TRUE,13);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   232
<ISAA>^@axclass            	put((char)32,TRUE,13);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   233
<ISA,ISAA>^constdefs      	put((char)32,TRUE,14);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   234
<ISAA>^@constdefs          	put((char)32,TRUE,14);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   235
<ISA,ISAA>^consts         	put((char)32,TRUE,15);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   236
<ISAA>^@consts             	put((char)32,TRUE,15);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   237
<ISA,ISAA>^datatype       	put((char)32,TRUE,16);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   238
<ISAA>^@datatype           	put((char)32,TRUE,16);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   239
<ISA,ISAA>^defs           	put((char)32,TRUE,17);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   240
<ISAA>^@defs               	put((char)32,TRUE,17);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   241
<ISA,ISAA>^domain         	put((char)32,TRUE,18);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   242
<ISAA>^@domain             	put((char)32,TRUE,18);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   243
<ISA,ISAA>^end            	put((char)32,TRUE,19);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   244
<ISAA>^@end                	put((char)32,TRUE,19);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   245
<ISA,ISAA>^inductive      	put((char)32,TRUE,20);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   246
<ISAA>^@inductive          	put((char)32,TRUE,20);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   247
<ISA,ISAA>^instance       	put((char)32,TRUE,21);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   248
<ISAA>^@instance           	put((char)32,TRUE,21);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   249
<ISA,ISAA>^primrec        	put((char)32,TRUE,22);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   250
<ISAA>^@primrec            	put((char)32,TRUE,22);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   251
<ISA,ISAA>^recdef         	put((char)32,TRUE,23);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   252
<ISAA>^@recdef             	put((char)32,TRUE,23);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   253
<ISA,ISAA>^rules          	put((char)32,TRUE,24);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   254
<ISAA>^@rules              	put((char)32,TRUE,24);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   255
<ISA,ISAA>^syntax         	put((char)32,TRUE,25);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   256
<ISAA>^@syntax             	put((char)32,TRUE,25);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   257
<ISA,ISAA>^translations   	put((char)32,TRUE,26);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   258
<ISAA>^@translations       	put((char)32,TRUE,26);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   259
<ISA,ISAA>^typedef        	put((char)32,TRUE,27);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   260
<ISAA>^@typedef            	put((char)32,TRUE,27);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   261
<ISA,ISAA>^types          	put((char)32,TRUE,28);
000879172ee4 added keyword 'and'
oheimb
parents: 5436
diff changeset
   262
<ISAA>^@types              	put((char)32,TRUE,28);
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   263
  /* END_OF_SEQ_TABLE */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   264
  /* This is the end of the generated part */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   265
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   266
.			{ put(*yytext,FALSE,0);}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   267
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   268
%%
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   269
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   270
void warning(char *str)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   271
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   272
  fprintf(stderr,"WARNING: line %d: %s\n", lineno, str);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   273
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   274
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   275
void not_suitable(char *what, char *where)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   276
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   277
  char buf[80];
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   278
  sprintf(buf, "'%s' inside %s mode", what, where);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   279
  warning(buf);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   280
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   281
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   282
void reset_tabs(void)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   283
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   284
  cc = 0;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   285
  tabcount = 1;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   286
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   287
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   288
void put(char c, int longDetect,int longCode)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   289
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   290
  int i;
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   291
  char s[100];
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   292
  extern char *translateHi(int ch, int code);
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   293
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   294
    if (YY_START == LATEX || YY_START == ESC)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   295
        /* do not translate in these modes */ 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   296
	fputc(c,foutput);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   297
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   298
    else /* we are in ISA mode */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   299
    if (longDetect) { /* lexer has scanned a long sequence */ 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   300
       fprintf(foutput, "%s", translateLong(longCode, destCode));
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   301
        if (destCode == TO_LaTeX && ++cc % tabBlanks == 0)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   302
          tabcount++;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   303
       }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   304
    else /* lexer has not scanned a long sequence */		      
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   305
    if (c & 0x80) { /* Hi-bit is set... */
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   306
       strcpy(s, translateHi(c, destCode));
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   307
       i = strlen(s);
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   308
       if((unsigned char)c != 0xa0 &&
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   309
	  i >= 2 && s[i-2] == '\\' && s[i-1] == ' ' && (yytext[0] & 0x80))
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   310
	 s[i-2] ='\0';
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   311
       fprintf(foutput, "%s", s);
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   312
        if (destCode == TO_LaTeX && ++cc % tabBlanks == 0)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   313
          tabcount++;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   314
    } 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   315
    else /* simple char without Hi-Bit*/
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   316
    if (destCode == TO_7bit)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   317
        fputc(c, foutput);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   318
    else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   319
        switch (c) {  /* handle control codes */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   320
          case '\n': if (inline_mode)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   321
		       c=' ';
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   322
		     else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   323
		       fprintf(foutput, "\\\\\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   324
		       reset_tabs();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   325
		       break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   326
		     }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   327
          case TAB:  if (inline_mode)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   328
		       c=' ';
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   329
		     else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   330
		       for (i = 0; i < tabcount; i++)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   331
		         fprintf(foutput, "\\>");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   332
		       reset_tabs();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   333
		       break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   334
		     }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   335
         default:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   336
            if (++cc % tabBlanks == 0)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   337
              tabcount++;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   338
            if ((c >= START_LOW_TABLE) && (c <= END_LOW_TABLE))
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   339
	      {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   340
              fprintf(foutput, "%s", translateLow(c));}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   341
            else /* just reproduce the other control codes */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   342
              fputc(c, foutput);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   343
        } /* switch */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   344
}       
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   345
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   346
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   347
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   348
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   349
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   350