plugin for sql
[afterthought.git] / aft_lexer.ml
1 # 1 "aft_lexer.mll"
2  
3   open Aft_parser
4   open Xpath_ext
5   open Parsing
6   open Printf
7   open Lexing
8
9   let cut_at_ws s c =
10     let l = String.length s in
11     let rec aux i =
12       if i = l then s 
13       else match s.[i] with
14         | ' ' | '\t' | '\r' | '\n' -> String.sub s 0 i
15         | z when z=c -> String.sub s 0 i
16         | _ -> aux (succ i)
17     in
18     aux 0
19
20 # 21 "aft_lexer.ml"
21 let __ocaml_lex_tables = {
22   Lexing.lex_base = 
23    "\000\000\252\255\253\255\078\000\255\255\192\000\225\255\226\255\
24     \227\255\000\000\086\000\028\000\230\255\022\001\233\255\000\000\
25     \002\000\003\000\239\255\240\255\241\255\242\255\001\000\245\255\
26     \246\255\247\255\248\255\029\000\250\255\251\255\011\000\145\001\
27     \254\255\226\001\147\001\001\000\255\255\084\002\005\000\253\255\
28     \249\255\244\255\238\255\235\255\234\255\162\002\220\002\042\003\
29     \229\255\158\000";
30   Lexing.lex_backtrk = 
31    "\004\000\255\255\255\255\001\000\255\255\255\255\255\255\255\255\
32     \255\255\027\000\255\255\255\255\255\255\255\255\255\255\019\000\
33     \018\000\255\255\255\255\255\255\255\255\255\255\012\000\255\255\
34     \255\255\255\255\255\255\023\000\255\255\255\255\003\000\025\000\
35     \255\255\255\255\255\255\255\255\255\255\025\000\255\255\255\255\
36     \255\255\255\255\255\255\255\255\255\255\024\000\255\255\024\000\
37     \255\255\027\000";
38   Lexing.lex_default = 
39    "\255\255\000\000\000\000\255\255\000\000\255\255\000\000\000\000\
40     \000\000\255\255\010\000\011\000\000\000\255\255\000\000\255\255\
41     \255\255\255\255\000\000\000\000\000\000\000\000\255\255\000\000\
42     \000\000\000\000\000\000\255\255\000\000\000\000\255\255\255\255\
43     \000\000\255\255\255\255\255\255\000\000\255\255\255\255\000\000\
44     \000\000\000\000\000\000\000\000\000\000\255\255\255\255\255\255\
45     \000\000\255\255";
46   Lexing.lex_trans = 
47    "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
48     \000\000\001\000\002\000\000\000\000\000\001\000\038\000\038\000\
49     \000\000\000\000\038\000\000\000\000\000\000\000\000\000\000\000\
50     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
51     \001\000\000\000\000\000\000\000\000\000\038\000\000\000\000\000\
52     \000\000\000\000\004\000\000\000\000\000\032\000\049\000\041\000\
53     \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
54     \009\000\009\000\039\000\036\000\000\000\044\000\048\000\043\000\
55     \042\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
56     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
57     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
58     \003\000\003\000\003\000\040\000\000\000\000\000\000\000\003\000\
59     \000\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
60     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
61     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
62     \003\000\003\000\003\000\003\000\003\000\048\000\003\000\003\000\
63     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
64     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\
65     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
66     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
67     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
68     \003\000\000\000\000\000\000\000\000\000\003\000\000\000\003\000\
69     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
70     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
71     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
72     \003\000\007\000\008\000\000\000\000\000\007\000\049\000\049\000\
73     \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
74     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
75     \007\000\017\000\011\000\000\000\013\000\000\000\000\000\010\000\
76     \025\000\026\000\012\000\014\000\020\000\027\000\022\000\030\000\
77     \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
78     \009\000\009\000\000\000\000\000\016\000\018\000\015\000\000\000\
79     \021\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
80     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
81     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
82     \031\000\031\000\031\000\024\000\255\255\023\000\000\000\031\000\
83     \000\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
84     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
85     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
86     \031\000\031\000\031\000\028\000\019\000\029\000\000\000\000\000\
87     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
88     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
89     \000\000\000\000\000\000\000\000\000\000\000\000\255\255\045\000\
90     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
91     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
92     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
93     \045\000\000\000\000\000\000\000\000\000\045\000\000\000\045\000\
94     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
95     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
96     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
97     \045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
98     \000\000\000\000\034\000\034\000\034\000\034\000\034\000\000\000\
99     \034\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
100     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
101     \000\000\034\000\000\000\034\000\000\000\000\000\000\000\000\000\
102     \000\000\032\000\000\000\032\000\000\000\000\000\031\000\031\000\
103     \006\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
104     \031\000\031\000\031\000\033\000\000\000\035\000\000\000\000\000\
105     \000\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\
106     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
107     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
108     \031\000\031\000\031\000\031\000\000\000\000\000\000\000\000\000\
109     \031\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\
110     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
111     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
112     \031\000\031\000\031\000\031\000\012\000\000\000\000\000\000\000\
113     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
114     \000\000\000\000\000\000\000\000\036\000\000\000\000\000\000\000\
115     \000\000\000\000\000\000\037\000\037\000\037\000\037\000\037\000\
116     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
117     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
118     \037\000\037\000\037\000\037\000\037\000\000\000\000\000\000\000\
119     \000\000\037\000\000\000\037\000\037\000\037\000\037\000\037\000\
120     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
121     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
122     \037\000\037\000\037\000\037\000\037\000\038\000\038\000\000\000\
123     \000\000\038\000\000\000\000\000\000\000\000\000\000\000\000\000\
124     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
125     \000\000\000\000\000\000\000\000\038\000\000\000\000\000\000\000\
126     \000\000\000\000\000\000\000\000\032\000\000\000\000\000\000\000\
127     \000\000\037\000\037\000\000\000\037\000\037\000\037\000\037\000\
128     \037\000\037\000\037\000\037\000\037\000\037\000\000\000\000\000\
129     \000\000\000\000\000\000\000\000\000\000\037\000\037\000\037\000\
130     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
131     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
132     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\000\000\
133     \000\000\000\000\000\000\037\000\000\000\037\000\037\000\037\000\
134     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
135     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
136     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\045\000\
137     \045\000\000\000\045\000\045\000\045\000\045\000\045\000\045\000\
138     \045\000\045\000\045\000\045\000\046\000\000\000\000\000\000\000\
139     \000\000\000\000\000\000\045\000\045\000\045\000\045\000\045\000\
140     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
141     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
142     \045\000\045\000\045\000\045\000\045\000\000\000\000\000\000\000\
143     \000\000\045\000\000\000\045\000\045\000\045\000\045\000\045\000\
144     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
145     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
146     \045\000\045\000\045\000\045\000\045\000\047\000\047\000\047\000\
147     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
148     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
149     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\000\000\
150     \000\000\000\000\000\000\047\000\000\000\047\000\047\000\047\000\
151     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
152     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
153     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
154     \047\000\000\000\047\000\047\000\047\000\047\000\047\000\047\000\
155     \047\000\047\000\047\000\047\000\000\000\000\000\000\000\000\000\
156     \000\000\000\000\000\000\047\000\047\000\047\000\047\000\047\000\
157     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
158     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
159     \047\000\047\000\047\000\047\000\047\000\000\000\000\000\000\000\
160     \000\000\047\000\000\000\047\000\047\000\047\000\047\000\047\000\
161     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
162     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
163     \047\000\047\000\047\000\047\000\047\000\000\000\000\000\000\000\
164     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
165     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
166     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
167     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
168     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
169     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
170     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
171     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
172     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
173     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
174     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
175     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
176     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
177     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
178     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
179     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
180     \000\000\000\000\000\000";
181   Lexing.lex_check = 
182    "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
183     \255\255\000\000\000\000\255\255\255\255\000\000\038\000\038\000\
184     \255\255\255\255\038\000\255\255\255\255\255\255\255\255\255\255\
185     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
186     \000\000\255\255\255\255\255\255\255\255\038\000\255\255\255\255\
187     \255\255\255\255\000\000\255\255\255\255\038\000\009\000\022\000\
188     \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
189     \009\000\009\000\030\000\035\000\255\255\015\000\011\000\016\000\
190     \017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
191     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
192     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
193     \000\000\000\000\000\000\027\000\255\255\255\255\255\255\000\000\
194     \255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
195     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
196     \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
197     \000\000\000\000\000\000\003\000\003\000\010\000\003\000\003\000\
198     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
199     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\003\000\
200     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
201     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
202     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
203     \003\000\255\255\255\255\255\255\255\255\003\000\255\255\003\000\
204     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
205     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
206     \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\
207     \003\000\005\000\005\000\255\255\255\255\005\000\049\000\049\000\
208     \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\
209     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
210     \005\000\005\000\005\000\255\255\005\000\255\255\255\255\005\000\
211     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
212     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
213     \005\000\005\000\255\255\255\255\005\000\005\000\005\000\255\255\
214     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
215     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
216     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
217     \005\000\005\000\005\000\005\000\011\000\005\000\255\255\005\000\
218     \255\255\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
219     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
220     \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\
221     \005\000\005\000\005\000\005\000\005\000\005\000\255\255\255\255\
222     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
223     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
224     \255\255\255\255\255\255\255\255\255\255\255\255\010\000\013\000\
225     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
226     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
227     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
228     \013\000\255\255\255\255\255\255\255\255\013\000\255\255\013\000\
229     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
230     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
231     \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
232     \013\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
233     \255\255\255\255\031\000\031\000\034\000\034\000\031\000\255\255\
234     \034\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
235     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
236     \255\255\031\000\255\255\034\000\255\255\255\255\255\255\255\255\
237     \255\255\031\000\255\255\034\000\255\255\255\255\031\000\031\000\
238     \005\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
239     \031\000\031\000\031\000\031\000\255\255\034\000\255\255\255\255\
240     \255\255\255\255\031\000\031\000\031\000\031\000\031\000\031\000\
241     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
242     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
243     \031\000\031\000\031\000\031\000\255\255\255\255\255\255\255\255\
244     \031\000\255\255\031\000\031\000\031\000\031\000\031\000\031\000\
245     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
246     \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\
247     \031\000\031\000\031\000\031\000\033\000\255\255\255\255\255\255\
248     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
249     \255\255\255\255\255\255\255\255\033\000\255\255\255\255\255\255\
250     \255\255\255\255\255\255\033\000\033\000\033\000\033\000\033\000\
251     \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\
252     \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\
253     \033\000\033\000\033\000\033\000\033\000\255\255\255\255\255\255\
254     \255\255\033\000\255\255\033\000\033\000\033\000\033\000\033\000\
255     \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\
256     \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\
257     \033\000\033\000\033\000\033\000\033\000\037\000\037\000\255\255\
258     \255\255\037\000\255\255\255\255\255\255\255\255\255\255\255\255\
259     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
260     \255\255\255\255\255\255\255\255\037\000\255\255\255\255\255\255\
261     \255\255\255\255\255\255\255\255\037\000\255\255\255\255\255\255\
262     \255\255\037\000\037\000\255\255\037\000\037\000\037\000\037\000\
263     \037\000\037\000\037\000\037\000\037\000\037\000\255\255\255\255\
264     \255\255\255\255\255\255\255\255\255\255\037\000\037\000\037\000\
265     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
266     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
267     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\255\255\
268     \255\255\255\255\255\255\037\000\255\255\037\000\037\000\037\000\
269     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
270     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\037\000\
271     \037\000\037\000\037\000\037\000\037\000\037\000\037\000\045\000\
272     \045\000\255\255\045\000\045\000\045\000\045\000\045\000\045\000\
273     \045\000\045\000\045\000\045\000\045\000\255\255\255\255\255\255\
274     \255\255\255\255\255\255\045\000\045\000\045\000\045\000\045\000\
275     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
276     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
277     \045\000\045\000\045\000\045\000\045\000\255\255\255\255\255\255\
278     \255\255\045\000\255\255\045\000\045\000\045\000\045\000\045\000\
279     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
280     \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\
281     \045\000\045\000\045\000\045\000\045\000\046\000\046\000\046\000\
282     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
283     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
284     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\255\255\
285     \255\255\255\255\255\255\046\000\255\255\046\000\046\000\046\000\
286     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
287     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\
288     \046\000\046\000\046\000\046\000\046\000\046\000\046\000\047\000\
289     \047\000\255\255\047\000\047\000\047\000\047\000\047\000\047\000\
290     \047\000\047\000\047\000\047\000\255\255\255\255\255\255\255\255\
291     \255\255\255\255\255\255\047\000\047\000\047\000\047\000\047\000\
292     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
293     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
294     \047\000\047\000\047\000\047\000\047\000\255\255\255\255\255\255\
295     \255\255\047\000\255\255\047\000\047\000\047\000\047\000\047\000\
296     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
297     \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\
298     \047\000\047\000\047\000\047\000\047\000\255\255\255\255\255\255\
299     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
300     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
301     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
302     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
303     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
304     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
305     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
306     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
307     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
308     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
309     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
310     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
311     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
312     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
313     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
314     \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
315     \255\255\255\255\255\255";
316   Lexing.lex_base_code = 
317    "";
318   Lexing.lex_backtrk_code = 
319    "";
320   Lexing.lex_default_code = 
321    "";
322   Lexing.lex_trans_code = 
323    "";
324   Lexing.lex_check_code = 
325    "";
326   Lexing.lex_code = 
327    "";
328 }
329
330 let rec token_after_not_op lexbuf =
331     __ocaml_lex_token_after_not_op_rec lexbuf 0
332 and __ocaml_lex_token_after_not_op_rec lexbuf __ocaml_lex_state =
333   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
334       | 0 ->
335 # 39 "aft_lexer.mll"
336            ( MUL )
337 # 338 "aft_lexer.ml"
338
339   | 1 ->
340 # 40 "aft_lexer.mll"
341            ( 
342       match Lexing.lexeme lexbuf with
343         | "and" -> AND
344         | "or"  -> OR
345         | "mod" -> MOD
346         | "div" -> DIV
347         | s -> failwith ("Unknown operator "^s)
348     )
349 # 350 "aft_lexer.ml"
350
351   | 2 ->
352 # 48 "aft_lexer.mll"
353              ( new_line lexbuf; token_after_not_op lexbuf )
354 # 355 "aft_lexer.ml"
355
356   | 3 ->
357 # 49 "aft_lexer.mll"
358            ( token_after_not_op lexbuf )
359 # 360 "aft_lexer.ml"
360
361   | 4 ->
362 # 50 "aft_lexer.mll"
363            ( token lexbuf )
364 # 365 "aft_lexer.ml"
365
366   | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_after_not_op_rec lexbuf __ocaml_lex_state
367
368 and token lexbuf =
369     __ocaml_lex_token_rec lexbuf 5
370 and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
371   match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
372       | 0 ->
373 # 53 "aft_lexer.mll"
374                     ( 
375       let s = Lexing.lexeme lexbuf in
376       let s = cut_at_ws s ':' in
377       AXIS s
378     )
379 # 380 "aft_lexer.ml"
380
381   | 1 ->
382 # 59 "aft_lexer.mll"
383                   (
384       let s = Lexing.lexeme lexbuf in
385       let s = cut_at_ws s '(' in
386       match s with
387         | "comment" | "text" | "processing-instruction" | "node" -> NODE_TYPE s
388         | _ -> FUNCTION_NAME s
389     )
390 # 391 "aft_lexer.ml"
391
392   | 2 ->
393 # 68 "aft_lexer.mll"
394            ( DOUBLESLASH )
395 # 396 "aft_lexer.ml"
396
397   | 3 ->
398 # 69 "aft_lexer.mll"
399            ( SLASH )
400 # 401 "aft_lexer.ml"
401
402   | 4 ->
403 # 71 "aft_lexer.mll"
404            ( RBRACE )
405 # 406 "aft_lexer.ml"
406
407   | 5 ->
408 # 72 "aft_lexer.mll"
409            ( LBRACE )
410 # 411 "aft_lexer.ml"
411
412   | 6 ->
413 # 73 "aft_lexer.mll"
414            ( POINT )
415 # 416 "aft_lexer.ml"
416
417   | 7 ->
418 # 75 "aft_lexer.mll"
419            ( RPAREN )
420 # 421 "aft_lexer.ml"
421
422   | 8 ->
423 # 76 "aft_lexer.mll"
424            ( LPAREN )
425 # 426 "aft_lexer.ml"
426
427   | 9 ->
428 # 78 "aft_lexer.mll"
429            ( LBRACKET )
430 # 431 "aft_lexer.ml"
431
432   | 10 ->
433 # 79 "aft_lexer.mll"
434            ( RBRACKET )
435 # 436 "aft_lexer.ml"
436
437   | 11 ->
438 # 82 "aft_lexer.mll"
439            ( DOUBLEDOT )
440 # 441 "aft_lexer.ml"
441
442   | 12 ->
443 # 83 "aft_lexer.mll"
444            ( DOT )
445 # 446 "aft_lexer.ml"
446
447   | 13 ->
448 # 85 "aft_lexer.mll"
449            ( AT )
450 # 451 "aft_lexer.ml"
451
452   | 14 ->
453 # 86 "aft_lexer.mll"
454            ( COMMA )
455 # 456 "aft_lexer.ml"
456
457   | 15 ->
458 # 87 "aft_lexer.mll"
459            ( PIPE )
460 # 461 "aft_lexer.ml"
461
462   | 16 ->
463 # 89 "aft_lexer.mll"
464            ( EQUAL )
465 # 466 "aft_lexer.ml"
466
467   | 17 ->
468 # 90 "aft_lexer.mll"
469            ( NOTEQUAL )
470 # 471 "aft_lexer.ml"
471
472   | 18 ->
473 # 91 "aft_lexer.mll"
474            ( LT )
475 # 476 "aft_lexer.ml"
476
477   | 19 ->
478 # 92 "aft_lexer.mll"
479            ( GT )
480 # 481 "aft_lexer.ml"
481
482   | 20 ->
483 # 93 "aft_lexer.mll"
484            ( LTE )
485 # 486 "aft_lexer.ml"
486
487   | 21 ->
488 # 94 "aft_lexer.mll"
489            ( GTE )
490 # 491 "aft_lexer.ml"
491
492   | 22 ->
493 # 95 "aft_lexer.mll"
494            ( PLUS )
495 # 496 "aft_lexer.ml"
496
497   | 23 ->
498 # 96 "aft_lexer.mll"
499            ( MINUS )
500 # 501 "aft_lexer.ml"
501
502   | 24 ->
503 # 98 "aft_lexer.mll"
504               ( 
505       let s = Lexing.lexeme lexbuf in
506       let s = String.sub s 1 (String.length s - 1) in
507       VAR s
508     )
509 # 510 "aft_lexer.ml"
510
511   | 25 ->
512 # 104 "aft_lexer.mll"
513                                 ( NAME_TEST (Lexing.lexeme lexbuf) )
514 # 515 "aft_lexer.ml"
515
516   | 26 ->
517 # 106 "aft_lexer.mll"
518              (  
519      let s = Lexing.lexeme lexbuf in
520      let s = String.sub s 1 (String.length s - 2) in
521      LITERAL s 
522    )
523 # 524 "aft_lexer.ml"
524
525   | 27 ->
526 # 112 "aft_lexer.mll"
527              ( NUMBER (float_of_string (Lexing.lexeme lexbuf)) )
528 # 529 "aft_lexer.ml"
529
530   | 28 ->
531 # 113 "aft_lexer.mll"
532              ( new_line lexbuf; token lexbuf )
533 # 534 "aft_lexer.ml"
534
535   | 29 ->
536 # 114 "aft_lexer.mll"
537              ( token lexbuf )
538 # 539 "aft_lexer.ml"
539
540   | 30 ->
541 # 115 "aft_lexer.mll"
542              ( EOF )
543 # 544 "aft_lexer.ml"
544
545   | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state
546
547 ;;
548
549 # 117 "aft_lexer.mll"
550  
551   let make_lexer () =
552     let previous_op = ref true in
553     fun lexbuf ->
554       let tok = 
555         if !previous_op then token lexbuf 
556         else token_after_not_op lexbuf in
557       (match tok with
558          | AT | AXIS _ | FUNCTION_NAME _ | NODE_TYPE _ | LBRACKET | LPAREN
559          | AND | OR | MOD | DIV | MUL | SLASH | DOUBLESLASH
560          | PIPE | PLUS | MINUS | EQUAL | NOTEQUAL | LT | GT | LTE | GTE 
561              -> previous_op := true
562          | _ -> previous_op := false
563       );
564       tok
565
566   let parse_expr x =    
567     let lexbuf = Lexing.from_string x in
568     let lexer  = make_lexer () in
569     let result = Aft_parser.aft_pattern_match lexer lexbuf in
570         result
571
572   let parse_from_channel x = 
573     let lexbuf = Lexing.from_channel x in
574     let lexer = make_lexer () in
575     let result = 
576         try 
577             Aft_parser.access_spec lexer lexbuf 
578         with Parse_error ->
579             printf "Error at line %d char %d.\n" (lexbuf.lex_curr_p.pos_lnum)
580                 (lexbuf.lex_curr_p.pos_cnum);
581             raise Parse_error
582         in
583             result
584
585 # 586 "aft_lexer.ml"