]> arthur.barton.de Git - netatalk.git/blob - etc/spotlight/spotlight_rawquery_lexer.l
Rename Tracker 0.6 module to RDF
[netatalk.git] / etc / spotlight / spotlight_rawquery_lexer.l
1 %top{
2 #ifdef HAVE_CONFIG_H
3 #include "config.h"
4 #endif /* HAVE_CONFIG_H */
5 }
6
7 %{
8 #include <stdbool.h>
9 #include <gio/gio.h>
10 #include <atalk/talloc.h>
11 #include <atalk/spotlight.h>
12 #ifdef HAVE_TRACKER_SPARQL
13 #include "slmod_sparql_parser.h"
14 #define SLQ_VAR ssp_slq
15 #endif
16 #ifdef HAVE_TRACKER_RDF
17 #include <tracker.h>
18 #include "slmod_rdf_parser.h"
19 #define SLQ_VAR srp_slq
20 #endif
21 %}
22
23 ASC     [a-zA-Z0-9_\*\:\-\.]
24 U       [\x80-\xbf]
25 U2      [\xc2-\xdf]
26 U3      [\xe0-\xef]
27 U4      [\xf0-\xf4]
28
29 UANY    {ASC}|{U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U}
30 UONLY   {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U}
31
32 %%
33 InRange                               return FUNC_INRANGE;
34 \$time\.iso                           return DATE_ISO;
35 false                                 {yylval.bval = false; return BOOL;}
36 true                                  {yylval.bval = true; return BOOL;}
37 \"                                    return QUOTE;
38 \(                                    return OBRACE;
39 \)                                    return CBRACE;
40 \&\&                                  return AND;
41 \|\|                                  return OR;
42 \=\=                                  return EQUAL;
43 \!\=                                  return UNEQUAL;
44 \<                                    return LT;
45 \>                                    return GT;
46 \,                                    return COMMA;
47 {UANY}+                               {yylval.sval = talloc_strdup(SLQ_VAR, yytext); return WORD;}
48 [ \t\n]                               /* ignore */
49 %%