[Home] [By Thread] [By Date] [Recent Entries]

  • To: "Roger L. Costello" <costello@m...>,<xml-dev@l...>
  • Subject: RE: [OT] Java Lexical Analyzer?
  • From: "Dare Obasanjo" <dareo@m...>
  • Date: Fri, 23 Aug 2002 12:00:30 -0700
  • Cc: "Costello,Roger L." <costello@m...>
  • Thread-index: AcJK03tVszRPd2BtQ8WUApCGBOEcpQAAwZEG
  • Thread-topic: [OT] Java Lexical Analyzer?

I don't know any Java Lex and Yacc based tools but can point you to more powerful lexer/parser generators 
 
1.) ANTLR 
 
2.) JavaCC 
 
I haven't used JavaCC but can attest that ANTLR is quite good [plus it does C# as well].  In fact the SiXDML parser for the Apache Xindice implementation[0] was built using ANTLR. 
 
[0] http://www.25hoursaday.com/sixdml/demo.html

	-----Original Message----- 
	From: Roger L. Costello [mailto:costello@m...] 
	Sent: Fri 8/23/2002 11:32 AM 
	To: xml-dev@l... 
	Cc: Costello,Roger L. 
	Subject:  [OT] Java Lexical Analyzer?
	
	

	Hi Folks,
	
	[The XML Parser implementors on the list, no doubt, have experience with
	LEX and YACCC.  Hence, I'll pose my question here.]
	
	I am just learning LEX so please bear with me if my question seems
	cockeyed...
	
	Can anyone recommend a Java lex tool? 
	
	A lex file is comprised of a series of regular expression/action pairs:
	
	regex  { action }
	regex  { action }
	...
	
	Thus, what I mean by a "Java LEX tool" is one that would:
	
	   - allow me to specify the action in Java, and
	   - the generated lexical analyzer would be in Java
	
	I have looked at a couple of tools:
	
	   - Bumble-Bee Parser Generator
	   - JFlex
	
	I tried unsuccessfully running these tools on the very first example
	(below) in the lex & yacc book by Levine and Brown. 
	
	Any suggestions on a Java lex generator would be much appreciated.
	/Roger
	
	Sample lex program
	
	%{
	/*
	 * this sample demonstrates (very) simple regonition:
	 * a verb/not a verb.
	 */
	
	%}
	%%
	
	[\t ]+      /* ignore whitespace */ ;
	
	is |
	am |
	are |
	were |
	was |
	be |
	being |
	been |
	do |
	does |
	did |
	will |
	would |
	should |
	can |
	could |
	has |
	have |
	had |
	go         {System.out.println(new String(yytext) + ": is a verb");}
	
	[a-zA-Z]+  {System.out.println(new String(yytext) + ": is a verb");}
	
	.|\n       {System.out.println(new String(yytext));}
	
	%%
	        public static void main(String args[]) {
	                mylexer lexer = new mylexer();
	        }
	
	}
	
	
	-----------------------------------------------------------------
	The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
	initiative of OASIS <http://www.oasis-open.org>
	
	The list archives are at http://lists.xml.org/archives/xml-dev/
	
	To subscribe or unsubscribe from this list use the subscription
	manager: <http://lists.xml.org/ob/adm.pl>
	
	


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member