]>
git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_codesigning/lib/RequirementLexer.cpp
83296a4ae7b312860e525e273e9dda9a3bdf6597
1 /* $ANTLR 2.7.7 (20121221): "requirements.grammar" -> "RequirementLexer.cpp"$ */
2 #include "RequirementLexer.hpp"
3 #include <antlr/CharBuffer.hpp>
4 #include <antlr/TokenStreamException.hpp>
5 #include <antlr/TokenStreamIOException.hpp>
6 #include <antlr/TokenStreamRecognitionException.hpp>
7 #include <antlr/CharStreamException.hpp>
8 #include <antlr/CharStreamIOException.hpp>
9 #include <antlr/NoViableAltForCharException.hpp>
12 #include "requirement.h"
14 #include "csutilities.h"
15 #include <security_utilities/cfutilities.h>
16 #include <security_utilities/hashing.h>
17 #include <security_cdsa_utilities/cssmdata.h> // OID coding
18 using namespace CodeSigning
;
19 typedef Requirement::Maker Maker
;
21 ANTLR_BEGIN_NAMESPACE(Security_CodeSigning
)
22 RequirementLexer::RequirementLexer(std::istream
& in
)
23 : antlr::CharScanner(new antlr::CharBuffer(in
),true)
28 RequirementLexer::RequirementLexer(antlr::InputBuffer
& ib
)
29 : antlr::CharScanner(ib
,true)
34 RequirementLexer::RequirementLexer(const antlr::LexerSharedInputState
& state
)
35 : antlr::CharScanner(state
,true)
40 void RequirementLexer::initLiterals()
42 literals
["certificate"] = 26;
43 literals
["always"] = 15;
45 literals
["guest"] = 5;
46 literals
["cdhash"] = 20;
47 literals
["entitlement"] = 30;
48 literals
["library"] = 8;
49 literals
["never"] = 17;
50 literals
["cert"] = 27;
51 literals
["plugin"] = 9;
53 literals
["leaf"] = 43;
54 literals
["info"] = 29;
55 literals
["designated"] = 7;
56 literals
["apple"] = 24;
57 literals
["trusted"] = 28;
58 literals
["true"] = 16;
59 literals
["notarized"] = 22;
61 literals
["root"] = 44;
62 literals
["platform"] = 21;
63 literals
["anchor"] = 23;
64 literals
["false"] = 18;
65 literals
["generic"] = 25;
66 literals
["identifier"] = 19;
67 literals
["exists"] = 31;
70 antlr::RefToken
RequirementLexer::nextToken()
72 antlr::RefToken theRetToken
;
74 antlr::RefToken theRetToken
;
75 int _ttype
= antlr::Token::INVALID_TYPE
;
77 try { // for lexical and char stream error handling
79 case 0x22 /* '\"' */ :
82 theRetToken
=_returnToken
;
88 theRetToken
=_returnToken
;
94 theRetToken
=_returnToken
;
100 theRetToken
=_returnToken
;
103 case 0x5b /* '[' */ :
106 theRetToken
=_returnToken
;
109 case 0x5d /* ']' */ :
112 theRetToken
=_returnToken
;
115 case 0x2c /* ',' */ :
118 theRetToken
=_returnToken
;
121 case 0x7e /* '~' */ :
124 theRetToken
=_returnToken
;
127 case 0x2d /* '-' */ :
130 theRetToken
=_returnToken
;
133 case 0x21 /* '!' */ :
136 theRetToken
=_returnToken
;
139 case 0x2a /* '*' */ :
142 theRetToken
=_returnToken
;
145 case 0x9 /* '\t' */ :
146 case 0xa /* '\n' */ :
147 case 0x20 /* ' ' */ :
150 theRetToken
=_returnToken
;
153 case 0x23 /* '#' */ :
156 theRetToken
=_returnToken
;
160 if ((LA(1) == 0x2f /* '/' */ ) && (_tokenSet_0
.member(LA(2)))) {
162 theRetToken
=_returnToken
;
164 else if ((LA(1) == 0x48 /* 'H' */ ) && (LA(2) == 0x22 /* '\"' */ )) {
166 theRetToken
=_returnToken
;
168 else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x78 /* 'x' */ )) {
170 theRetToken
=_returnToken
;
172 else if ((LA(1) == 0x3d /* '=' */ ) && (LA(2) == 0x3e /* '>' */ )) {
174 theRetToken
=_returnToken
;
176 else if ((LA(1) == 0x3c /* '<' */ ) && (LA(2) == 0x3d /* '=' */ )) {
178 theRetToken
=_returnToken
;
180 else if ((LA(1) == 0x3e /* '>' */ ) && (LA(2) == 0x3d /* '=' */ )) {
182 theRetToken
=_returnToken
;
184 else if ((LA(1) == 0x3d /* '=' */ ) && (LA(2) == 0x3d /* '=' */ )) {
186 theRetToken
=_returnToken
;
188 else if ((LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2a /* '*' */ )) {
190 theRetToken
=_returnToken
;
192 else if ((LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2f /* '/' */ )) {
194 theRetToken
=_returnToken
;
196 else if ((_tokenSet_0
.member(LA(1))) && (true)) {
198 theRetToken
=_returnToken
;
200 else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true)) {
202 theRetToken
=_returnToken
;
204 else if ((LA(1) == 0x3c /* '<' */ ) && (true)) {
206 theRetToken
=_returnToken
;
208 else if ((LA(1) == 0x3e /* '>' */ ) && (true)) {
210 theRetToken
=_returnToken
;
212 else if ((LA(1) == 0x3d /* '=' */ ) && (true)) {
214 theRetToken
=_returnToken
;
220 _returnToken
= makeToken(antlr::Token::EOF_TYPE
);
222 else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
226 goto tryAgain
; // found SKIP token
228 _ttype
= _returnToken
->getType();
229 _returnToken
->setType(_ttype
);
232 catch (antlr::RecognitionException
& e
) {
233 throw antlr::TokenStreamRecognitionException(e
);
235 catch (antlr::CharStreamIOException
& csie
) {
236 throw antlr::TokenStreamIOException(csie
.io
);
238 catch (antlr::CharStreamException
& cse
) {
239 throw antlr::TokenStreamException(cse
.getMessage());
245 void RequirementLexer::mIDENT(bool _createToken
) {
246 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
248 std::string::size_type _saveIndex
;
252 case 0x41 /* 'A' */ :
253 case 0x42 /* 'B' */ :
254 case 0x43 /* 'C' */ :
255 case 0x44 /* 'D' */ :
256 case 0x45 /* 'E' */ :
257 case 0x46 /* 'F' */ :
258 case 0x47 /* 'G' */ :
259 case 0x48 /* 'H' */ :
260 case 0x49 /* 'I' */ :
261 case 0x4a /* 'J' */ :
262 case 0x4b /* 'K' */ :
263 case 0x4c /* 'L' */ :
264 case 0x4d /* 'M' */ :
265 case 0x4e /* 'N' */ :
266 case 0x4f /* 'O' */ :
267 case 0x50 /* 'P' */ :
268 case 0x51 /* 'Q' */ :
269 case 0x52 /* 'R' */ :
270 case 0x53 /* 'S' */ :
271 case 0x54 /* 'T' */ :
272 case 0x55 /* 'U' */ :
273 case 0x56 /* 'V' */ :
274 case 0x57 /* 'W' */ :
275 case 0x58 /* 'X' */ :
276 case 0x59 /* 'Y' */ :
277 case 0x5a /* 'Z' */ :
282 case 0x61 /* 'a' */ :
283 case 0x62 /* 'b' */ :
284 case 0x63 /* 'c' */ :
285 case 0x64 /* 'd' */ :
286 case 0x65 /* 'e' */ :
287 case 0x66 /* 'f' */ :
288 case 0x67 /* 'g' */ :
289 case 0x68 /* 'h' */ :
290 case 0x69 /* 'i' */ :
291 case 0x6a /* 'j' */ :
292 case 0x6b /* 'k' */ :
293 case 0x6c /* 'l' */ :
294 case 0x6d /* 'm' */ :
295 case 0x6e /* 'n' */ :
296 case 0x6f /* 'o' */ :
297 case 0x70 /* 'p' */ :
298 case 0x71 /* 'q' */ :
299 case 0x72 /* 'r' */ :
300 case 0x73 /* 's' */ :
301 case 0x74 /* 't' */ :
302 case 0x75 /* 'u' */ :
303 case 0x76 /* 'v' */ :
304 case 0x77 /* 'w' */ :
305 case 0x78 /* 'x' */ :
306 case 0x79 /* 'y' */ :
307 case 0x7a /* 'z' */ :
314 throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
321 case 0x41 /* 'A' */ :
322 case 0x42 /* 'B' */ :
323 case 0x43 /* 'C' */ :
324 case 0x44 /* 'D' */ :
325 case 0x45 /* 'E' */ :
326 case 0x46 /* 'F' */ :
327 case 0x47 /* 'G' */ :
328 case 0x48 /* 'H' */ :
329 case 0x49 /* 'I' */ :
330 case 0x4a /* 'J' */ :
331 case 0x4b /* 'K' */ :
332 case 0x4c /* 'L' */ :
333 case 0x4d /* 'M' */ :
334 case 0x4e /* 'N' */ :
335 case 0x4f /* 'O' */ :
336 case 0x50 /* 'P' */ :
337 case 0x51 /* 'Q' */ :
338 case 0x52 /* 'R' */ :
339 case 0x53 /* 'S' */ :
340 case 0x54 /* 'T' */ :
341 case 0x55 /* 'U' */ :
342 case 0x56 /* 'V' */ :
343 case 0x57 /* 'W' */ :
344 case 0x58 /* 'X' */ :
345 case 0x59 /* 'Y' */ :
346 case 0x5a /* 'Z' */ :
351 case 0x61 /* 'a' */ :
352 case 0x62 /* 'b' */ :
353 case 0x63 /* 'c' */ :
354 case 0x64 /* 'd' */ :
355 case 0x65 /* 'e' */ :
356 case 0x66 /* 'f' */ :
357 case 0x67 /* 'g' */ :
358 case 0x68 /* 'h' */ :
359 case 0x69 /* 'i' */ :
360 case 0x6a /* 'j' */ :
361 case 0x6b /* 'k' */ :
362 case 0x6c /* 'l' */ :
363 case 0x6d /* 'm' */ :
364 case 0x6e /* 'n' */ :
365 case 0x6f /* 'o' */ :
366 case 0x70 /* 'p' */ :
367 case 0x71 /* 'q' */ :
368 case 0x72 /* 'r' */ :
369 case 0x73 /* 's' */ :
370 case 0x74 /* 't' */ :
371 case 0x75 /* 'u' */ :
372 case 0x76 /* 'v' */ :
373 case 0x77 /* 'w' */ :
374 case 0x78 /* 'x' */ :
375 case 0x79 /* 'y' */ :
376 case 0x7a /* 'z' */ :
381 case 0x30 /* '0' */ :
382 case 0x31 /* '1' */ :
383 case 0x32 /* '2' */ :
384 case 0x33 /* '3' */ :
385 case 0x34 /* '4' */ :
386 case 0x35 /* '5' */ :
387 case 0x36 /* '6' */ :
388 case 0x37 /* '7' */ :
389 case 0x38 /* '8' */ :
390 case 0x39 /* '9' */ :
403 _ttype
= testLiteralsTable(text
.substr(_begin
, text
.length()-_begin
),_ttype
);
404 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
405 _token
= makeToken(_ttype
);
406 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
408 _returnToken
= _token
;
412 void RequirementLexer::mDOTKEY(bool _createToken
) {
413 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
415 std::string::size_type _saveIndex
;
420 if ((LA(1) == 0x2e /* '.' */ )) {
424 case 0x41 /* 'A' */ :
425 case 0x42 /* 'B' */ :
426 case 0x43 /* 'C' */ :
427 case 0x44 /* 'D' */ :
428 case 0x45 /* 'E' */ :
429 case 0x46 /* 'F' */ :
430 case 0x47 /* 'G' */ :
431 case 0x48 /* 'H' */ :
432 case 0x49 /* 'I' */ :
433 case 0x4a /* 'J' */ :
434 case 0x4b /* 'K' */ :
435 case 0x4c /* 'L' */ :
436 case 0x4d /* 'M' */ :
437 case 0x4e /* 'N' */ :
438 case 0x4f /* 'O' */ :
439 case 0x50 /* 'P' */ :
440 case 0x51 /* 'Q' */ :
441 case 0x52 /* 'R' */ :
442 case 0x53 /* 'S' */ :
443 case 0x54 /* 'T' */ :
444 case 0x55 /* 'U' */ :
445 case 0x56 /* 'V' */ :
446 case 0x57 /* 'W' */ :
447 case 0x58 /* 'X' */ :
448 case 0x59 /* 'Y' */ :
449 case 0x5a /* 'Z' */ :
450 case 0x61 /* 'a' */ :
451 case 0x62 /* 'b' */ :
452 case 0x63 /* 'c' */ :
453 case 0x64 /* 'd' */ :
454 case 0x65 /* 'e' */ :
455 case 0x66 /* 'f' */ :
456 case 0x67 /* 'g' */ :
457 case 0x68 /* 'h' */ :
458 case 0x69 /* 'i' */ :
459 case 0x6a /* 'j' */ :
460 case 0x6b /* 'k' */ :
461 case 0x6c /* 'l' */ :
462 case 0x6d /* 'm' */ :
463 case 0x6e /* 'n' */ :
464 case 0x6f /* 'o' */ :
465 case 0x70 /* 'p' */ :
466 case 0x71 /* 'q' */ :
467 case 0x72 /* 'r' */ :
468 case 0x73 /* 's' */ :
469 case 0x74 /* 't' */ :
470 case 0x75 /* 'u' */ :
471 case 0x76 /* 'v' */ :
472 case 0x77 /* 'w' */ :
473 case 0x78 /* 'x' */ :
474 case 0x79 /* 'y' */ :
475 case 0x7a /* 'z' */ :
480 case 0x30 /* '0' */ :
481 case 0x31 /* '1' */ :
482 case 0x32 /* '2' */ :
483 case 0x33 /* '3' */ :
484 case 0x34 /* '4' */ :
485 case 0x35 /* '5' */ :
486 case 0x36 /* '6' */ :
487 case 0x37 /* '7' */ :
488 case 0x38 /* '8' */ :
489 case 0x39 /* '9' */ :
496 throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
508 _ttype
= testLiteralsTable(_ttype
);
509 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
510 _token
= makeToken(_ttype
);
511 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
513 _returnToken
= _token
;
517 void RequirementLexer::mINTEGER(bool _createToken
) {
518 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
520 std::string::size_type _saveIndex
;
525 if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
529 if ( _cnt69
>=1 ) { goto _loop69
; } else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
536 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
537 _token
= makeToken(_ttype
);
538 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
540 _returnToken
= _token
;
544 void RequirementLexer::mPATHNAME(bool _createToken
) {
545 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
547 std::string::size_type _saveIndex
;
554 if ((LA(1) == 0x2f /* '/' */ )) {
559 if ( _cnt54
>=1 ) { goto _loop54
; } else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
566 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
567 _token
= makeToken(_ttype
);
568 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
570 _returnToken
= _token
;
574 void RequirementLexer::mHASHCONSTANT(bool _createToken
) {
575 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
576 _ttype
= HASHCONSTANT
;
577 std::string::size_type _saveIndex
;
579 _saveIndex
= text
.length();
580 match('H' /* charlit */ );
581 text
.erase(_saveIndex
);
582 _saveIndex
= text
.length();
583 match('\"' /* charlit */ );
584 text
.erase(_saveIndex
);
588 if ((_tokenSet_1
.member(LA(1)))) {
592 if ( _cnt57
>=1 ) { goto _loop57
; } else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
599 _saveIndex
= text
.length();
600 match('\"' /* charlit */ );
601 text
.erase(_saveIndex
);
602 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
603 _token
= makeToken(_ttype
);
604 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
606 _returnToken
= _token
;
610 void RequirementLexer::mHEX(bool _createToken
) {
611 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
613 std::string::size_type _saveIndex
;
616 case 0x30 /* '0' */ :
617 case 0x31 /* '1' */ :
618 case 0x32 /* '2' */ :
619 case 0x33 /* '3' */ :
620 case 0x34 /* '4' */ :
621 case 0x35 /* '5' */ :
622 case 0x36 /* '6' */ :
623 case 0x37 /* '7' */ :
624 case 0x38 /* '8' */ :
625 case 0x39 /* '9' */ :
630 case 0x61 /* 'a' */ :
631 case 0x62 /* 'b' */ :
632 case 0x63 /* 'c' */ :
633 case 0x64 /* 'd' */ :
634 case 0x65 /* 'e' */ :
635 case 0x66 /* 'f' */ :
640 case 0x41 /* 'A' */ :
641 case 0x42 /* 'B' */ :
642 case 0x43 /* 'C' */ :
643 case 0x44 /* 'D' */ :
644 case 0x45 /* 'E' */ :
645 case 0x46 /* 'F' */ :
652 throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
655 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
656 _token
= makeToken(_ttype
);
657 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
659 _returnToken
= _token
;
663 void RequirementLexer::mHEXCONSTANT(bool _createToken
) {
664 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
665 _ttype
= HEXCONSTANT
;
666 std::string::size_type _saveIndex
;
668 _saveIndex
= text
.length();
669 match('0' /* charlit */ );
670 text
.erase(_saveIndex
);
671 _saveIndex
= text
.length();
672 match('x' /* charlit */ );
673 text
.erase(_saveIndex
);
677 if ((_tokenSet_1
.member(LA(1)))) {
681 if ( _cnt60
>=1 ) { goto _loop60
; } else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
688 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
689 _token
= makeToken(_ttype
);
690 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
692 _returnToken
= _token
;
696 void RequirementLexer::mSTRING(bool _createToken
) {
697 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
699 std::string::size_type _saveIndex
;
701 _saveIndex
= text
.length();
702 match('\"' /* charlit */ );
703 text
.erase(_saveIndex
);
707 case 0x5c /* '\\' */ :
710 _saveIndex
= text
.length();
711 match('\\' /* charlit */ );
712 text
.erase(_saveIndex
);
713 match('\"' /* charlit */ );
717 case 0x0 /* '\0' */ :
718 case 0x1 /* '\1' */ :
719 case 0x2 /* '\2' */ :
720 case 0x3 /* '\3' */ :
721 case 0x4 /* '\4' */ :
722 case 0x5 /* '\5' */ :
723 case 0x6 /* '\6' */ :
724 case 0x7 /* '\7' */ :
725 case 0x8 /* '\10' */ :
726 case 0x9 /* '\t' */ :
727 case 0xa /* '\n' */ :
728 case 0xb /* '\13' */ :
729 case 0xc /* '\14' */ :
730 case 0xd /* '\r' */ :
731 case 0xe /* '\16' */ :
732 case 0xf /* '\17' */ :
733 case 0x10 /* '\20' */ :
734 case 0x11 /* '\21' */ :
735 case 0x12 /* '\22' */ :
736 case 0x13 /* '\23' */ :
737 case 0x14 /* '\24' */ :
738 case 0x15 /* '\25' */ :
739 case 0x16 /* '\26' */ :
740 case 0x17 /* '\27' */ :
741 case 0x18 /* '\30' */ :
742 case 0x19 /* '\31' */ :
743 case 0x1a /* '\32' */ :
744 case 0x1b /* '\33' */ :
745 case 0x1c /* '\34' */ :
746 case 0x1d /* '\35' */ :
747 case 0x1e /* '\36' */ :
748 case 0x1f /* '\37' */ :
749 case 0x20 /* ' ' */ :
750 case 0x21 /* '!' */ :
751 case 0x23 /* '#' */ :
752 case 0x24 /* '$' */ :
753 case 0x25 /* '%' */ :
754 case 0x26 /* '&' */ :
755 case 0x27 /* '\'' */ :
756 case 0x28 /* '(' */ :
757 case 0x29 /* ')' */ :
758 case 0x2a /* '*' */ :
759 case 0x2b /* '+' */ :
760 case 0x2c /* ',' */ :
761 case 0x2d /* '-' */ :
762 case 0x2e /* '.' */ :
763 case 0x2f /* '/' */ :
764 case 0x30 /* '0' */ :
765 case 0x31 /* '1' */ :
766 case 0x32 /* '2' */ :
767 case 0x33 /* '3' */ :
768 case 0x34 /* '4' */ :
769 case 0x35 /* '5' */ :
770 case 0x36 /* '6' */ :
771 case 0x37 /* '7' */ :
772 case 0x38 /* '8' */ :
773 case 0x39 /* '9' */ :
774 case 0x3a /* ':' */ :
775 case 0x3b /* ';' */ :
776 case 0x3c /* '<' */ :
777 case 0x3d /* '=' */ :
778 case 0x3e /* '>' */ :
779 case 0x3f /* '?' */ :
780 case 0x40 /* '@' */ :
781 case 0x41 /* 'A' */ :
782 case 0x42 /* 'B' */ :
783 case 0x43 /* 'C' */ :
784 case 0x44 /* 'D' */ :
785 case 0x45 /* 'E' */ :
786 case 0x46 /* 'F' */ :
787 case 0x47 /* 'G' */ :
788 case 0x48 /* 'H' */ :
789 case 0x49 /* 'I' */ :
790 case 0x4a /* 'J' */ :
791 case 0x4b /* 'K' */ :
792 case 0x4c /* 'L' */ :
793 case 0x4d /* 'M' */ :
794 case 0x4e /* 'N' */ :
795 case 0x4f /* 'O' */ :
796 case 0x50 /* 'P' */ :
797 case 0x51 /* 'Q' */ :
798 case 0x52 /* 'R' */ :
799 case 0x53 /* 'S' */ :
800 case 0x54 /* 'T' */ :
801 case 0x55 /* 'U' */ :
802 case 0x56 /* 'V' */ :
803 case 0x57 /* 'W' */ :
804 case 0x58 /* 'X' */ :
805 case 0x59 /* 'Y' */ :
806 case 0x5a /* 'Z' */ :
807 case 0x5b /* '[' */ :
808 case 0x5d /* ']' */ :
809 case 0x5e /* '^' */ :
810 case 0x5f /* '_' */ :
811 case 0x60 /* '`' */ :
812 case 0x61 /* 'a' */ :
813 case 0x62 /* 'b' */ :
814 case 0x63 /* 'c' */ :
815 case 0x64 /* 'd' */ :
816 case 0x65 /* 'e' */ :
817 case 0x66 /* 'f' */ :
818 case 0x67 /* 'g' */ :
819 case 0x68 /* 'h' */ :
820 case 0x69 /* 'i' */ :
821 case 0x6a /* 'j' */ :
822 case 0x6b /* 'k' */ :
823 case 0x6c /* 'l' */ :
824 case 0x6d /* 'm' */ :
825 case 0x6e /* 'n' */ :
826 case 0x6f /* 'o' */ :
827 case 0x70 /* 'p' */ :
828 case 0x71 /* 'q' */ :
829 case 0x72 /* 'r' */ :
830 case 0x73 /* 's' */ :
831 case 0x74 /* 't' */ :
832 case 0x75 /* 'u' */ :
833 case 0x76 /* 'v' */ :
834 case 0x77 /* 'w' */ :
835 case 0x78 /* 'x' */ :
836 case 0x79 /* 'y' */ :
837 case 0x7a /* 'z' */ :
838 case 0x7b /* '{' */ :
839 case 0x7c /* '|' */ :
840 case 0x7d /* '}' */ :
841 case 0x7e /* '~' */ :
859 _saveIndex
= text
.length();
860 match('\"' /* charlit */ );
861 text
.erase(_saveIndex
);
862 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
863 _token
= makeToken(_ttype
);
864 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
866 _returnToken
= _token
;
870 void RequirementLexer::mARROW(bool _createToken
) {
871 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
873 std::string::size_type _saveIndex
;
876 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
877 _token
= makeToken(_ttype
);
878 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
880 _returnToken
= _token
;
884 void RequirementLexer::mSEMI(bool _createToken
) {
885 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
887 std::string::size_type _saveIndex
;
889 match(';' /* charlit */ );
890 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
891 _token
= makeToken(_ttype
);
892 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
894 _returnToken
= _token
;
898 void RequirementLexer::mLPAREN(bool _createToken
) {
899 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
901 std::string::size_type _saveIndex
;
903 match('(' /* charlit */ );
904 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
905 _token
= makeToken(_ttype
);
906 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
908 _returnToken
= _token
;
912 void RequirementLexer::mRPAREN(bool _createToken
) {
913 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
915 std::string::size_type _saveIndex
;
917 match(')' /* charlit */ );
918 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
919 _token
= makeToken(_ttype
);
920 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
922 _returnToken
= _token
;
926 void RequirementLexer::mLBRACK(bool _createToken
) {
927 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
929 std::string::size_type _saveIndex
;
931 match('[' /* charlit */ );
932 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
933 _token
= makeToken(_ttype
);
934 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
936 _returnToken
= _token
;
940 void RequirementLexer::mRBRACK(bool _createToken
) {
941 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
943 std::string::size_type _saveIndex
;
945 match(']' /* charlit */ );
946 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
947 _token
= makeToken(_ttype
);
948 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
950 _returnToken
= _token
;
954 void RequirementLexer::mLESS(bool _createToken
) {
955 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
957 std::string::size_type _saveIndex
;
959 match('<' /* charlit */ );
960 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
961 _token
= makeToken(_ttype
);
962 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
964 _returnToken
= _token
;
968 void RequirementLexer::mGT(bool _createToken
) {
969 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
971 std::string::size_type _saveIndex
;
973 match('>' /* charlit */ );
974 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
975 _token
= makeToken(_ttype
);
976 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
978 _returnToken
= _token
;
982 void RequirementLexer::mLE(bool _createToken
) {
983 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
985 std::string::size_type _saveIndex
;
988 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
989 _token
= makeToken(_ttype
);
990 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
992 _returnToken
= _token
;
996 void RequirementLexer::mGE(bool _createToken
) {
997 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
999 std::string::size_type _saveIndex
;
1002 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1003 _token
= makeToken(_ttype
);
1004 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1006 _returnToken
= _token
;
1010 void RequirementLexer::mCOMMA(bool _createToken
) {
1011 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1013 std::string::size_type _saveIndex
;
1015 match(',' /* charlit */ );
1016 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1017 _token
= makeToken(_ttype
);
1018 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1020 _returnToken
= _token
;
1024 void RequirementLexer::mEQL(bool _createToken
) {
1025 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1027 std::string::size_type _saveIndex
;
1029 match('=' /* charlit */ );
1030 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1031 _token
= makeToken(_ttype
);
1032 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1034 _returnToken
= _token
;
1038 void RequirementLexer::mEQQL(bool _createToken
) {
1039 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1041 std::string::size_type _saveIndex
;
1044 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1045 _token
= makeToken(_ttype
);
1046 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1048 _returnToken
= _token
;
1052 void RequirementLexer::mSUBS(bool _createToken
) {
1053 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1055 std::string::size_type _saveIndex
;
1057 match('~' /* charlit */ );
1058 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1059 _token
= makeToken(_ttype
);
1060 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1062 _returnToken
= _token
;
1066 void RequirementLexer::mNEG(bool _createToken
) {
1067 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1069 std::string::size_type _saveIndex
;
1071 match('-' /* charlit */ );
1072 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1073 _token
= makeToken(_ttype
);
1074 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1076 _returnToken
= _token
;
1080 void RequirementLexer::mNOT(bool _createToken
) {
1081 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1083 std::string::size_type _saveIndex
;
1085 match('!' /* charlit */ );
1086 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1087 _token
= makeToken(_ttype
);
1088 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1090 _returnToken
= _token
;
1094 void RequirementLexer::mSTAR(bool _createToken
) {
1095 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1097 std::string::size_type _saveIndex
;
1099 match('*' /* charlit */ );
1100 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1101 _token
= makeToken(_ttype
);
1102 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1104 _returnToken
= _token
;
1108 void RequirementLexer::mWS(bool _createToken
) {
1109 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1111 std::string::size_type _saveIndex
;
1117 case 0x20 /* ' ' */ :
1119 match(' ' /* charlit */ );
1122 case 0xa /* '\n' */ :
1124 match('\n' /* charlit */ );
1128 case 0x9 /* '\t' */ :
1130 match('\t' /* charlit */ );
1135 if ( _cnt90
>=1 ) { goto _loop90
; } else {throw antlr::NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1142 _ttype
= antlr::Token::SKIP
;
1143 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1144 _token
= makeToken(_ttype
);
1145 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1147 _returnToken
= _token
;
1151 void RequirementLexer::mSHELLCOMMENT(bool _createToken
) {
1152 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1153 _ttype
= SHELLCOMMENT
;
1154 std::string::size_type _saveIndex
;
1156 match('#' /* charlit */ );
1159 if ((_tokenSet_3
.member(LA(1)))) {
1160 matchNot('\n' /* charlit */ );
1169 _ttype
= antlr::Token::SKIP
;
1170 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1171 _token
= makeToken(_ttype
);
1172 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1174 _returnToken
= _token
;
1178 void RequirementLexer::mC_COMMENT(bool _createToken
) {
1179 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1181 std::string::size_type _saveIndex
;
1186 if ((LA(1) == 0x2a /* '*' */ ) && (_tokenSet_4
.member(LA(2)))) {
1188 match('*' /* charlit */ );
1190 matchNot('/' /* charlit */ );
1194 else if ((_tokenSet_5
.member(LA(1)))) {
1196 matchNot('*' /* charlit */ );
1207 _ttype
= antlr::Token::SKIP
;
1208 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1209 _token
= makeToken(_ttype
);
1210 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1212 _returnToken
= _token
;
1216 void RequirementLexer::mCPP_COMMENT(bool _createToken
) {
1217 int _ttype
; antlr::RefToken _token
; std::string::size_type _begin
= text
.length();
1218 _ttype
= CPP_COMMENT
;
1219 std::string::size_type _saveIndex
;
1224 if ((_tokenSet_3
.member(LA(1)))) {
1225 matchNot('\n' /* charlit */ );
1234 _ttype
= antlr::Token::SKIP
;
1235 if ( _createToken
&& _token
==antlr::nullToken
&& _ttype
!=antlr::Token::SKIP
) {
1236 _token
= makeToken(_ttype
);
1237 _token
->setText(text
.substr(_begin
, text
.length()-_begin
));
1239 _returnToken
= _token
;
1244 const unsigned long RequirementLexer::_tokenSet_0_data_
[] = { 0UL, 0UL, 134217726UL, 134217726UL, 0UL, 0UL, 0UL, 0UL };
1245 const antlr::BitSet
RequirementLexer::_tokenSet_0(_tokenSet_0_data_
,8);
1246 const unsigned long RequirementLexer::_tokenSet_1_data_
[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL };
1247 // 0 1 2 3 4 5 6 7 8 9
1248 const antlr::BitSet
RequirementLexer::_tokenSet_1(_tokenSet_1_data_
,8);
1249 const unsigned long RequirementLexer::_tokenSet_2_data_
[] = { 4294967295UL, 4294967291UL, 4026531839UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
1250 // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
1251 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1252 // 0x1f ! # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :
1253 const antlr::BitSet
RequirementLexer::_tokenSet_2(_tokenSet_2_data_
,8);
1254 const unsigned long RequirementLexer::_tokenSet_3_data_
[] = { 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
1255 // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xd 0xe 0xf 0x10 0x11
1256 // 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
1257 // ! \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 :
1258 const antlr::BitSet
RequirementLexer::_tokenSet_3(_tokenSet_3_data_
,8);
1259 const unsigned long RequirementLexer::_tokenSet_4_data_
[] = { 4294967295UL, 4294934527UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
1260 // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
1261 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1262 // 0x1f ! \" # $ % & \' ( ) * + , - . 0 1 2 3 4 5 6 7 8 9 :
1263 const antlr::BitSet
RequirementLexer::_tokenSet_4(_tokenSet_4_data_
,8);
1264 const unsigned long RequirementLexer::_tokenSet_5_data_
[] = { 4294967295UL, 4294966271UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
1265 // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
1266 // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1267 // 0x1f ! \" # $ % & \' ( ) + , - . / 0 1 2 3 4 5 6 7 8 9 :
1268 const antlr::BitSet
RequirementLexer::_tokenSet_5(_tokenSet_5_data_
,8);