Imported Upstream version 2.11~beta1+ds
[debian/jabref.git] / src / main / antlr2 / net / sf / jabref / search / Lexer.g
1 header {
2 package net.sf.jabref.search;
3 }
4
5 class SearchExpressionLexer extends Lexer;
6
7 options {
8         k = 2;
9         exportVocab = SearchExpressionLexer;
10         caseSensitive = false;
11         caseSensitiveLiterals = false;
12         charVocabulary = '\3'..'\377'; // 8 bit
13         testLiterals = false;
14 }
15
16 tokens {
17         "and";
18         "or";
19         "not";
20         "contains";
21         "matches";
22
23 }
24
25
26
27 WS options { paraphrase = "white space"; }
28         :       (' '
29         |
30         '\t'
31         )
32                 { $setType(Token.SKIP); }
33         ;
34
35 LPAREN options { paraphrase = "'('"; }
36         :       '('
37         ;
38
39 RPAREN options { paraphrase = "')'"; }
40         :       ')'
41         ;
42
43 EQUAL options { paraphrase = "'='"; }
44         :       "=";
45
46 EEQUAL options { paraphrase = "'=='"; }
47         :       "==";
48
49 NEQUAL options { paraphrase = "'!='"; }
50         :       "!=";
51
52 QUOTE options { paraphrase = "'\"'"; }
53         :       '"';
54
55 STRING options { paraphrase = "a text literal"; }
56         :       QUOTE! (~'"')* QUOTE!;
57
58 protected
59 LETTER options { paraphrase = "a letter"; testLiterals = true; }
60         : ~(' ' | '\t' | '"' | '(' | ')' | '=' | '!'); //'a'..'z';
61
62 FIELDTYPE options { paraphrase = "a field type"; testLiterals = true; }
63         :       ( LETTER )+
64         ;
65