src/Tools/8bit/c-sources/a2isa/lex.x
author paulson
Tue, 16 Jul 1996 15:49:46 +0200
changeset 1868 836950047d85
parent 1826 2a2c0dbeb4ac
child 4168 d158fdc5a075
permissions -rw-r--r--
Put in minimal simpset to avoid excessive simplification, just as in revision 1.9 of HOL/indrule.ML
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     1
/*  Title:      Tools/8bit/c-sources/a2isa/lex.x
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     2
    ID:         $Id$
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     3
    Author:     David von Oheimb
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
Isabelle ASCII to 8bit converter
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
WARNING: the translations should be consistent with the configuration in
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    10
         8bit/config/conv-tables.inp
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    11
*/
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    12
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    13
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    14
%{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    15
extern FILE *finput, *foutput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    16
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    17
void put(char *s)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    18
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    19
  while(*s)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    20
  {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    21
    fputc(*s++, yyout);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    22
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    23
}       
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    24
%}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    25
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    26
%option 8bit
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    27
%option yylineno
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    28
%option noyywrap
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    29
%x STRING
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    30
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    31
%%
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    32
  yyin  = finput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    33
  yyout = foutput;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    34
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    35
\"			{ ECHO; BEGIN(STRING); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    36
[^\"]*			{ ECHO; }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    37
<STRING>\"		{ ECHO; BEGIN(INITIAL); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    38
<STRING>\\[ \t]*\n[ \t]*\\	{ ECHO; }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    39
<STRING>\n		{ ECHO; fprintf(stderr, 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    40
			  	"WARNING: line %d ends inside string\n", 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    41
				yylineno-1); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    42
<STRING><<EOF>>		{ 	fprintf(stderr, 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    43
			  	"WARNING: EOF inside string\n"); 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    44
				yyterminate(); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    45
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    46
<STRING>{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    47
   /* Pure */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    48
=>		put("ë");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    49
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    50
!!		put("Ä");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    51
\[\|		put("Ë");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    52
\|\]		put("Ì");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    53
==>		put("êë");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    54
==		put("Ú");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    55
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    56
   /* HOL */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    57
@		put("®");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    58
\ &\ 		put(" À ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    59
\ \|\ 		put(" Á ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    60
~\ 		put("¿ ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    61
-->		put("çè");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    62
~=		put("Û");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    63
\%[ A-Za-z_]	{ *yytext='³'; put(yytext); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    64
EX!		put("Ã!");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    65
\?!		put("Ã!");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    66
EX\ 		put("Ã");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    67
\?\ 		put("Ã");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    68
ALL\ 		put("Â");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    69
![ A-Za-z_]	{ *yytext='Â'; put(yytext); }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    70
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    71
   /* Set */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    72
::		put("::");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    73
~:		put("ñ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    74
:		put("Î");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    75
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    76
  > "{}"		"\mbox{$\emptyset$}"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    77
  > "<="		"\mbox{$\subseteq$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    78
  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    79
\ Int\ 		put("Ð");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    80
\ Un\ 		put("Ñ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    81
Inter\ 		put("Ò");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    82
Union\ 		put("Ó");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    83
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    84
   /* Nat */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    85
LEAST\ 		put("´");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    86
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    87
   /* HOLCF */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    88
->		put("è");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    89
\*\*		put("õ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    90
\+\+		put("ó");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    91
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    92
\<\<		put("Ý");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    93
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    94
  > "<\|"		"\mbox{$<\!\mid$}"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    95
  > "<<\|"		"\mbox{$\ll\!\mid$}"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    96
  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    97
LAM\ 		put("¤");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    98
lub\ 		put("×");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    99
UU		put("Ø");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   100
\(\|		put("É");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   101
\|\)		put("Ê");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   102
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   103
  /* misc */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   104
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   105
  >  "\Gamma\ "		"\mbox{$\Gamma$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   106
  >  "\Delta\ "		"\mbox{$\Delta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   107
  >  "\Theta\ "		"\mbox{$\Theta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   108
  >  "\Pi\ "		"\mbox{$\Pi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   109
  >  "\Sigma\ "		"\mbox{$\Sigma$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   110
  >  "\Phi\ "		"\mbox{$\Phi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   111
  >  "\Psi\ "		"\mbox{$\Psi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   112
  >  "\Omega\ "		"\mbox{$\Omega$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   113
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   114
  >  "\delta\ "		"\mbox{$\delta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   115
  >  "\epsilon\ "	"\mbox{$\varepsilon$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   116
  >  "\zeta\ "		"\mbox{$\zeta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   117
  >  "\eta\ "		"\mbox{$\eta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   118
  >  "\theta\ "		"\mbox{$\vartheta$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   119
  >  "\kappa\ "		"\mbox{$\kappa$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   120
  >  "\mu\ "		"\mbox{$\mu$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   121
  >  "\nu\ "		"\mbox{$\nu$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   122
  >  "\xi\ "		"\mbox{$\xi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   123
  >  "\pi\ "		"\mbox{$\pi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   124
  >  "\phi\ "		"\mbox{$\varphi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   125
  >  "\chi\ "		"\mbox{$\chi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   126
  >  "\psi\ "		"\mbox{$\psi$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   127
  >  "\omega\ "		"\mbox{$\omega$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   128
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   129
  >  "\lceil\ "		"\mbox{$\lceil$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   130
  >  "\rceil\ "		"\mbox{$\rceil$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   131
  >  "\lfloor\ "		"\mbox{$\lfloor$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   132
  >  "\rfloor\ "		"\mbox{$\rfloor$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   133
  >  "\emptyset\ "	"\mbox{$\emptyset$}"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   134
  >  "\sqcap\ "		"\mbox{$\sqcap$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   135
  >  "\sqcup\ "		"\mbox{$\sqcup$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   136
  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   137
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   138
glb\ 		put("Ö");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   139
===		put("Ù");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   140
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   141
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   142
  >  "\sqsubset\ "	"\mbox{$\sqsubset$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   143
  >  "\prec\ "		"\mbox{$\prec$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   144
  >  "\preceq\ "	"\mbox{$\preceq$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   145
  >  "\Succ\ "		"\mbox{$\succ$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   146
  >  "\Succeq\ "	"\mbox{$\succeq$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   147
  >  "\sim\ "		"\mbox{$\sim$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   148
  >  "\simeq\ "		"\mbox{$\simeq$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   149
  >  "\le\ "		"\mbox{$\le$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   150
  >  "\ge\ "		"\mbox{$\ge$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   151
  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   152
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   153
\<==		put("éê");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   154
\<=>		put("éë");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   155
\<--		put("æç");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   156
\<->		put("æè");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   157
\<-		put("æ");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   158
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   159
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   160
  >  "\mapsto\ "		"\mbox{$\mapsto$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   161
  >  "\leadsto\ "	"\mbox{$\leadsto$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   162
  >  "\uparrow\ "	"\mbox{$\uparrow$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   163
  >  "\downarrow\ "	"\mbox{$\downarrow$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   164
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   165
  >  "\ominus\ "		"\mbox{$\varominus$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   166
  >  "\oslash\ "		"\mbox{$\varoslash$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   167
  >  "\natural\ "	"\mbox{$\natural$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   168
  >  "\infty\ "		"\mbox{$\infty$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   169
  >  "\Box\ "		"\mbox{$\Box$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   170
  >  "\Diamond\ "	"\mbox{$\Diamond$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   171
  >  "\circ\ "		"\mbox{$\circ$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   172
  >  "\bullet\ "		"\mbox{$\bullet$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   173
  >  "||"		"\mbox{$\parallel$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   174
  >  "\tick\ "		"\mbox{$\surd$}" 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   175
  >  "\filter\ "		"\mbox{\copyright}"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   176
  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   177
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   178
%%