addKeyword(TokenNames.O.toUpperCase(), TokenTypes.EVENT);
addKeyword(TokenNames.O.toUpperCase(), TokenTypes.EVENT);   addKeyword(SIPETagHeader.NAME.toUpperCase(), TokenTypes.SIP_ETAG); addKeyword(SIPIfMatchHeader.NAME.toUpperCase(), TokenTypes.SIP_IF_MATCH);
	public void selectLexer(String lexerName) {	     synchronized( lexerTables ) {		// Synchronization Bug fix by Robert Rosen.		currentLexer = (Hashtable) lexerTables.get(lexerName);		this.currentLexerName = lexerName;		if (currentLexer == null) {			addLexer(lexerName);			if (lexerName.equals("method_keywordLexer")) {				addKeyword(					TokenNames.REGISTER.toUpperCase(),					TokenTypes.REGISTER);				addKeyword(TokenNames.ACK.toUpperCase(), TokenTypes.ACK);				addKeyword(					TokenNames.OPTIONS.toUpperCase(), 					TokenTypes.OPTIONS);				addKeyword(TokenNames.BYE.toUpperCase(), TokenTypes.BYE);				addKeyword(TokenNames.INVITE.toUpperCase(), TokenTypes.INVITE);				addKeyword(TokenNames.SIP.toUpperCase(), TokenTypes.SIP);				addKeyword(					TokenNames.SUBSCRIBE.toUpperCase(),					TokenTypes.SUBSCRIBE);				addKeyword(TokenNames.NOTIFY.toUpperCase(), TokenTypes.NOTIFY);			} else if (lexerName.equals("command_keywordLexer")) {				addKeyword(					ErrorInfoHeader.NAME.toUpperCase(),					TokenTypes.ERROR_INFO);				addKeyword(					AllowEventsHeader.NAME.toUpperCase(),					TokenTypes.ALLOW_EVENTS);				addKeyword(					AuthenticationInfoHeader.NAME.toUpperCase(),					TokenTypes.AUTHENTICATION_INFO);				addKeyword(EventHeader.NAME.toUpperCase(), TokenTypes.EVENT);				addKeyword(					MinExpiresHeader.NAME.toUpperCase(),					TokenTypes.MIN_EXPIRES);				addKeyword(RSeqHeader.NAME.toUpperCase(), TokenTypes.RSEQ);				addKeyword(RAckHeader.NAME.toUpperCase(), TokenTypes.RACK);				addKeyword(ReasonHeader.NAME.toUpperCase(), TokenTypes.REASON);				addKeyword(					ReplyToHeader.NAME.toUpperCase(),					TokenTypes.REPLY_TO);				addKeyword(					SubscriptionStateHeader.NAME.toUpperCase(),					TokenTypes.SUBSCRIPTION_STATE);				addKeyword(					TimeStampHeader.NAME.toUpperCase(),					TokenTypes.TIMESTAMP);				addKeyword(					InReplyToHeader.NAME.toUpperCase(),					TokenTypes.IN_REPLY_TO);				addKeyword(					MimeVersionHeader.NAME.toUpperCase(),					TokenTypes.MIME_VERSION);				addKeyword(					AlertInfoHeader.NAME.toUpperCase(),					TokenTypes.ALERT_INFO);				addKeyword(FromHeader.NAME.toUpperCase(), TokenTypes.FROM);				addKeyword(ToHeader.NAME.toUpperCase(), TokenTypes.TO);				addKeyword(					ReferToHeader.NAME.toUpperCase(),					TokenTypes.REFER_TO);				addKeyword(ViaHeader.NAME.toUpperCase(), TokenTypes.VIA);				addKeyword(					UserAgentHeader.NAME.toUpperCase(),					TokenTypes.USER_AGENT);				addKeyword(ServerHeader.NAME.toUpperCase(), TokenTypes.SERVER);				addKeyword(					AcceptEncodingHeader.NAME.toUpperCase(),					TokenTypes.ACCEPT_ENCODING);				addKeyword(AcceptHeader.NAME.toUpperCase(), TokenTypes.ACCEPT);				addKeyword(AllowHeader.NAME.toUpperCase(), TokenTypes.ALLOW);				addKeyword(RouteHeader.NAME.toUpperCase(), TokenTypes.ROUTE);				addKeyword(					AuthorizationHeader.NAME.toUpperCase(),					TokenTypes.AUTHORIZATION);				addKeyword(					ProxyAuthorizationHeader.NAME.toUpperCase(),					TokenTypes.PROXY_AUTHORIZATION);				addKeyword(					RetryAfterHeader.NAME.toUpperCase(),					TokenTypes.RETRY_AFTER);				addKeyword(					ProxyRequireHeader.NAME.toUpperCase(),					TokenTypes.PROXY_REQUIRE);				addKeyword(					ContentLanguageHeader.NAME.toUpperCase(),					TokenTypes.CONTENT_LANGUAGE);				addKeyword(					UnsupportedHeader.NAME.toUpperCase(),					TokenTypes.UNSUPPORTED);				addKeyword(					SupportedHeader.NAME.toUpperCase(),					TokenTypes.SUPPORTED);				addKeyword(					WarningHeader.NAME.toUpperCase(),					TokenTypes.WARNING);				addKeyword(					MaxForwardsHeader.NAME.toUpperCase(),					TokenTypes.MAX_FORWARDS);				addKeyword(DateHeader.NAME.toUpperCase(), TokenTypes.DATE);				addKeyword(					PriorityHeader.NAME.toUpperCase(),					TokenTypes.PRIORITY);				addKeyword(					ProxyAuthenticateHeader.NAME.toUpperCase(),					TokenTypes.PROXY_AUTHENTICATE);				addKeyword(					ContentEncodingHeader.NAME.toUpperCase(),					TokenTypes.CONTENT_ENCODING);				addKeyword(					ContentLengthHeader.NAME.toUpperCase(),					TokenTypes.CONTENT_LENGTH);				addKeyword(					SubjectHeader.NAME.toUpperCase(),					TokenTypes.SUBJECT);				addKeyword(					ContentTypeHeader.NAME.toUpperCase(),					TokenTypes.CONTENT_TYPE);				addKeyword(					ContactHeader.NAME.toUpperCase(),					TokenTypes.CONTACT);				addKeyword(CallIdHeader.NAME.toUpperCase(), TokenTypes.CALL_ID);				addKeyword(					RequireHeader.NAME.toUpperCase(),					TokenTypes.REQUIRE);				addKeyword(					ExpiresHeader.NAME.toUpperCase(),					TokenTypes.EXPIRES);				addKeyword(					RecordRouteHeader.NAME.toUpperCase(),					TokenTypes.RECORD_ROUTE);				addKeyword(					OrganizationHeader.NAME.toUpperCase(),					TokenTypes.ORGANIZATION);				addKeyword(CSeqHeader.NAME.toUpperCase(), TokenTypes.CSEQ);				addKeyword(					AcceptLanguageHeader.NAME.toUpperCase(),					TokenTypes.ACCEPT_LANGUAGE);				addKeyword(					WWWAuthenticateHeader.NAME.toUpperCase(),					TokenTypes.WWW_AUTHENTICATE);				addKeyword(					CallInfoHeader.NAME.toUpperCase(),					TokenTypes.CALL_INFO);				addKeyword(					ContentDispositionHeader.NAME.toUpperCase(),					TokenTypes.CONTENT_DISPOSITION);				// And now the dreaded short forms....				addKeyword(TokenNames.K.toUpperCase(), TokenTypes.SUPPORTED);				addKeyword(TokenNames.C.toUpperCase(), TokenTypes.CONTENT_TYPE);				addKeyword(					TokenNames.E.toUpperCase(),					TokenTypes.CONTENT_ENCODING);				addKeyword(TokenNames.F.toUpperCase(), TokenTypes.FROM);				addKeyword(TokenNames.I.toUpperCase(), TokenTypes.CALL_ID);				addKeyword(TokenNames.M.toUpperCase(), TokenTypes.CONTACT);				addKeyword(					TokenNames.L.toUpperCase(),					TokenTypes.CONTENT_LENGTH);				addKeyword(TokenNames.S.toUpperCase(), TokenTypes.SUBJECT);				addKeyword(TokenNames.T.toUpperCase(), TokenTypes.TO);				addKeyword(TokenNames.U.toUpperCase(), TokenTypes.ALLOW_EVENTS);	// JvB: added				addKeyword(TokenNames.V.toUpperCase(), TokenTypes.VIA);				addKeyword(TokenNames.R.toUpperCase(), TokenTypes.REFER_TO);			        addKeyword(TokenNames.O.toUpperCase(), TokenTypes.EVENT); // Bug fix by Mario Mantak			} else if (lexerName.equals("status_lineLexer")) {				addKeyword(TokenNames.SIP.toUpperCase(), TokenTypes.SIP);			} else if (lexerName.equals("request_lineLexer")) {				addKeyword(TokenNames.SIP.toUpperCase(), TokenTypes.SIP);			} else if (lexerName.equals("sip_urlLexer")) {				addKeyword(TokenNames.TEL.toUpperCase(), TokenTypes.TEL);				addKeyword(TokenNames.SIP.toUpperCase(), TokenTypes.SIP);			}		}	      }	}