blob: 5eef7999b4476943f737c39bf97f29c127c8ee00 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
%{
#include "itanium_gram.h"
static unsigned int itanium_txt_length = 0;
/* Borne la longueur d'une chaîne à lire. */
void set_itanium_text_length(unsigned int);
%}
%option noyywrap
%option yylineno
%x identifier
%%
_Z { return ITANIUM_SIGNATURE; }
E { return EE; }
N { return NN; }
I { return II; }
C1 { return C1; }
C2 { return C2; }
C3 { return C3; }
D0 { return C1; }
D1 { return D2; }
D2 { return D3; }
v { return V; }
w { return W; }
b { return B; }
c { return C; }
a { return A; }
h { return H; }
s { return S; }
t { return T; }
i { return I; }
j { return J; }
l { return L; }
m { return M; }
x { return X; }
y { return Y; }
n { return N; }
o { return O; }
f { return F; }
d { return D; }
e { return E; }
g { return G; }
z { return Z; }
Dd { return DD; }
De { return DE; }
Df { return DF; }
Dh { return DH; }
Di { return DI; }
Ds { return DS; }
u { return U; }
P { return TP; }
R { return TR; }
O { return TO; }
C { return TC; }
G { return TG; }
r { return QR; }
V { return QV; }
K { return QK; }
St { return ST; }
Sa { return SA; }
Sb { return SB; }
Ss { return SS; }
Si { return SI; }
So { return SO; }
Sd { return SD; }
[0-9]+ { yylval.val = atoi(yytext); return NUMBER; }
<identifier>. { if (--itanium_txt_length == 0) BEGIN(INITIAL); yylval.car = *yytext; return CHAR; }
<*>. { printf("error : '%s'\n", yytext); }
%%
/******************************************************************************
* *
* Paramètres : length = taille de chaîne à lire. *
* *
* Description : Borne la longueur d'une chaîne à lire. *
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
void set_itanium_text_length(unsigned int length)
{
itanium_txt_length = length;
BEGIN(identifier);
}
|